Skip to content
aterrel edited this page Feb 4, 2012 · 4 revisions

Many Core Working Group

Previous work

code: https://bitbucket.org/ketch/petclaw-kernels/src/ada6340d5b9e/cuda2d/

poster: http://db.tt/QNScBVfz

Plans

  • Interface Pyclaw with CUDACLAW to make CUDACLAW a legitimate child of the Clawpack family. This will involve cleaning up and refactoring the existing code.
  • Automatic generation of CUDA kernels for Riemann solvers from an appropriate high level description. One of the questions here is the nature of the high-level language. A Matlab-like language perhaps?
  • Automatic generation of kernels for setting up boundary and initial condition, source terms, etc. needed to set up problem instances. We really should have it as a goal to make it relatively straightforward to run CUDACLAW: no need for a user to know CUDA to set up a simulation. The system won't likely get much traction otherwise.
  • Multi-GPU issues. 3D and high-res 2D simulations will inevitably require the data to be spread on multiple GPUs.
  • Using CUDACLAW as a library to, for example, advance a subgrid for a few time steps and return to the CPU. Such a facility might be useful in a variety of contexts including a CPU-based patch-oriented AMR where the GPU is used as an accelerator for certain subtasks. The question here is how should the API look like for such a capability? Coordination with the AMR working group will be needed here.
  • Visualization/steering. User specification of (realtime) visualization. Interactive steering in the context of GPUs. We obviously need to coordinate with the Viz/Steering working group.
  • OpenCL and other languages for targeting MIC and other SIMD targets, as per the earlier thread of Andy and Nathan.
Clone this wiki locally