1. A method performed by a computing device for assisting in parallelization of a computer program, the computer program having source code, the method comprising:
executing instrumented code of the computer program to collect performance statistics information relating to execution of loops within the computer program;
presenting to a user performance statistics information collected for a loop within the computer program;
generating inlined source code of the loop, the inlined source code generated by aggressively inlining invoked functions substantially without regard to compilation performance, execution performance, or both;
analyzing the inlined source code to determine the data-sharing attributes of the variables of the loop;
providing feedback on issues found when determining data-sharing attributes of the variables of the loop;
generating compiler directives to specify the data-sharing attributes of the variables; and
compiling source code of the computer program that has not been aggressively inlined in accordance with the generated compiler directives.
2. The method of claim 1 wherein the performance statistics information for a loop includes an execution time derived from a start time indicating time at which execution of the loop was started and an end time indicating time at which execution of the loop ended.
3. The method of claim 2 wherein the execution time is derived from the start time and end time of each execution of the loop.
4. The method of claim 1 wherein the performance statistics information includes, for each execution of the loop, number of iterations of that execution of the loop.
5. The method of claim 1 wherein the performance statistics information includes number of times the loop was executed.
6. The method of claim 1 wherein the computer program is instrumented during compilation by a compiler inserting code to collect the performance statistics information.
7. The method of claim 6 wherein the source code is not instrumented to collect the statistical information.
8. The method of claim 1 including inserting the compiler directives into the source code.
9. The method of claim 1 wherein the analyzing determines that the data-sharing attribute of a variable cannot be resolved.
10. The method of claim 9 including generating an invalid compiler directive indicating that a variable is unresolved, the invalid compiler directive preventing compilation of the source code by a compiler and serving as an indication of variables that are unresolved during editing of the source code.
11. The method of claim 9 including presenting to the user an indication of a reason why a variable cannot be resolved.
12. A computer-readable storage medium storing computer-executable instructions for controlling a computing device to determine a data-sharing attribute of variables of a computer program, the computer-executable instructions comprising instructions that:
generate inlined source code for a loop of the computer program, the inlined source code generated by aggressively inlining invoked functions substantially without regard to compilation performance or execution performance;
analyze the inlined source code to resolve the data-sharing attributes of variables of the loop of the computer program, the analysis indicating whether a data-sharing attribute of a variable is shared, private, or unresolved;
generate one or more compiler directives to specify whether data-sharing attributes of the variables are shared, private, or unresolved; and
output an indication of the generated compiler directives.
13. The computer-readable storage medium of claim 12 wherein a generated compiler directive is an invalid compiler directive to indicate that the data-sharing attribute of a variable is unresolved, the invalid compiler directive to prevent compilation of the source code by a compiler and to serve during editing of the source code as an indication that the data-sharing attribute of a variable is unresolved.
14. The computer-readable storage medium of claim 12 including instructions that present to a user an indication of a reason why the data-sharing attribute of a variable is unresolved.
15. A computing system for assisting in parallelization of a computer program, the computer program having source code, the computing system comprising:
one or more computer-readable storage media storing computer-executable instructions that
present to a user performance statistics information collected for loops of the computer program, the performance statistics information for allowing the user to prioritize efforts to parallelize the computer program;
generate an inlined source code of at least one of the loops of the computer program, the inlined source code generated by aggressively inlining invoked functions substantially without regard to compilation performance, execution performance, or both;
analyze the inlined source code to resolve data-sharing attributes of variables of the loop;
generate a compiler directive to specify the data-sharing attributes of variables as shared or private; and
output an indication of the generated compiler directive; and
a processor that executes the computer-executable instructions stored in the one or more computer-readable storage media.
16. The computing system of claim 15 including instructions that generate an invalid compiler directive indicating that the data-sharing attribute of a variable is unresolved, the invalid compiler directive preventing compilation of the source code by a compiler and serving during editing of the source code as an indication of variables whose data-sharing attributes are unresolved.
17. The computing system of claim 15 including instructions that direct execution of an instrumented code of the computer program to collect performance statistics information relating to execution of loops within the computer program.
18. The computing system of claim 17 wherein the source code of the computer program is not instrumented to collect the performance statistics information and wherein the computer program is instrumented by a compiler that inserts code into the compiled code for collecting the performance statistics information.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
I claim:
1. A standardized assay kit for detection of an anti-food antibody in a stool sample wherein the antibody is detected by observation of a reaction of the antibody with an antigen present in the kit.
2. The standardized assay kit of claim 1, wherein the kit comprises a single antigen for detection of a single antibody in a single stool sample.
3. The standardized assay kit of claim 1, wherein the kit comprises a plurality of antigens for detection of a plurality of antibodies in a single stool sample.
4. The standardized assay kit of claim 1, wherein the kit comprises a single antigen for detection of antibody in a plurality stool samples.
5. The standardized assay kit of claim 1, wherein the kit comprises a plurality of antigens for detection of a plurality of antibodies in a plurality of stool samples.
6. The standardized assay kit of claim 1, wherein the reaction is detected by observation of a precipitate.
7. The standardized assay kit of claim 1, wherein the reaction is detected by observation of an aggregate.
8. The standardized assay kit of claim 1, wherein the assay is performed by hand.
9. The standardized assay kit of claim 1, wherein the assay is performed by an automated system.
10. A standardized assay kit for detection of an anti-food antibody in a stool sample wherein the kit comprises a solid support,
a matrix,
at least one antigen in contact with said matrix,
at least one discrete region on the matrix for application of the stool sample to allow for interaction between the antigen and the sample, wherein the antibody is detected by observation of a reaction of the antibody with an antigen present in the kit.
11. The standardized assay kit of claim 10, wherein the kit comprises a single antigen for detection of a single antibody in a single stool sample.
12. The standardized assay kit of claim 10, wherein the kit comprises a plurality of antigens for detection of a plurality of antibodies in a single stool sample.
13. The standardized assay kit of claim 10, wherein the kit comprises a single antigen for detection of antibody in a plurality stool samples.
14. The standardized assay kit of claim 10, wherein the kit comprises a plurality of antigens for detection of a plurality of antibodies in a plurality of stool samples.
15. The kit of claim 10, wherein the matrix comprises a gel.
16. The kit of claim 15, wherein the antigen is incorporated into the gel.
17. The kit of claim 15, wherein the antigen is loaded into a well in the gel.
18. The kit of claim 10, wherein the matrix comprises latex.
19. The kit of claim 10, wherein the stool sample is placed directly in contact with the antigen.
20. The kit of claim 10, wherein the stool sample is placed adjacent to the antigen.
21. The kit of claim 10, wherein barriers are placed between antigens to prevent cross-contamination.
22. The standardized assay kit of claim 1, wherein the assay is performed by hand.
23. The standardized assay kit of claim 1, wherein the assay is performed by an automated system.
22. A machine for automation of performance of a standardized stool based assay for the detection of anti-food antibodies comprising:
a holder for receiving a stool sample;
a centrifuge for the separation of solids from supernatant in a sample;
a second holder for receiving a test apparatus;
a fluid handling device for loading the sample supernatant onto the test apparatus;
a humid chamber for incubation of the test apparatus;
a detector to detect formation of a precipitate; and
a recorder to record detection of a precipitate.