Nov 11: The initial formulation and prototype of the Pseudo language framework has been prototyped and completed. This includes a native interface which is called from the host program each time a PARALLELFOR is encountered. The front-end code additions include loading the native object for programs that include parallel loops, the code additions to copy each of the arrays and variables to the data passed to the native interface and finally the code to invoke the native method. Yet to be done are the tasks to transfer the data back to the local variables. One issue encountered during unit test involves the declaration and initialization of each of the local variables defined in the Pseudo code program. The base Pseudo language frontend does not allocate variables and arrays until they are first encountered in the program. This presents a slight problem if a variable is encountered for the first time within a PARALLELFOR: the initial array must be defined prior to accessing it. This issue will be resolved when the code is added to transfer data back to local variables after invocation of the native interface. As stated in the PTX Backend features page, the Jasmin Assembly contained within the PARALLELFOR statements will be the starting point for the generated PTX modules. Research is currently in progress to prototype using the VMKit extensions for LLVM to generate LLVM IR and then using the PTX backend for LLVM to generate PTX modules. Dec 1: The final version of the compile framework is complete. The final version of the framework follows a modified design from that which was originally stated in the proposal. The design and architecture description are now reference via the Pseudo Language Framework with PTX support page. As part of the final delivery, several basic function test have been executed and compared against serialized versions, and a number of performance tests have been assembled in order to generate data for performance analysis. These results are described and listed in the Performance Analysis and Results page. |