| 129 | |
| 130 | ==== Parallelized Backends ==== |
| 131 | The modularized design of odeint allows it to be used in a wide variety of environments by implementing appropriate computational backends. |
| 132 | For example, there already exist such backends for running odeint on graphic cards, both for OpenCL and CUDA. |
| 133 | However, in this project we would like to see the applicability further expanded in terms of parallelized computation backends based on OpenMP and MPI. |
| 134 | Some prototypical OpenMP backends have already been developed and used, but have not yet reached a satisfactory level to be integrated with the rest of odeint. |
| 135 | This project would mainly consist of implementing computational backends for odeint, benchmarking them in performance tests and providing examples on how to use these backends efficiently, maybe in terms of a short tutorial. |
| 136 | For this work, despite profound knowledge on C++, it would also be helpful to have some experience with numerical programming and parallelization. |
| 137 | |
| 138 | * Develop parallelized computational backends |
| 139 | * Implement performance tests |
| 140 | * Add examples and tutorial |
| 141 | |
| 142 | This project will be mentored by Karsten Ahnert and Mario Mulansky |