OpenMP Exercise

From ASCEND
Jump to: navigation, search

Last updated 3/29.

The basic idea is to sketch how you might use OpenMP in the QRSlv solver (aka solver/slv3.c) and the supporting codes underneath, and to illustrate how you would make the needed underlying equation interpreter (compiler/relation_util.c) code thread-safe.

Key steps in this are:

Getting an open-mp aware C compiler for Windows on your machine (unless you are a linux user, in which case just make sure your gcc has omp support installed). Getting ascend and the tcl/tk interface to build/run with that compiler. extra credit: Find a better openmp implementation than the default one that comes with gcc but is compatible.

Please note, we are particularly interested in OpenMP because it appears that for many scientific calculations there will be compilers available that can map OpenMP directed blocks into GPU runtime code. An alternate approach would be to convert the specific model evaluation to GPU code; this is nontrivial but doable in a summer project by someone comfortable working with tree data structures and GPU language extensions such as cuda or opencl.