Scientists need to be able to quickly develop and run parallel simulations without paying the high price of writing low-level message passing codes using compiled languages such as C/C++/Fortran. This is especially true of students and researchers who are expert scientists in their field but don't have the time or resources to become experts in parallel computing. This proposal will enable scientists to rapidly create parallel simulations by providing parallel building blocks in the high-level programming language Python. The building blocks themselves, such as distributed arrays, parallel linear algebra, parallel Fourier transforms and parallel statistical algorithms, will be implemented by leveraging existing high-performance libraries and creating high-level Python objects that completely hide the details of the underlying libraries and parallelism from users. The building blocks will be developed as part of the open source IPython project, which will enable users to develop, debug and run parallel simulations in a completely interactive manner, similar to Matlab or IDL. The anticipated Phase I result will be the demonstration of an interactive parallel simulation utilizing prototype building blocks on a commodity Linux cluster. Phase II will result in a production quality demonstration on a NASA supercomputer.
More »