SLACKHA / pyJac

Creates C and CUDA analytical Jacobians for chemical kinetics ODE systems
http://slackha.github.io/pyJac/
MIT License
52 stars 23 forks source link

Chemkin compatible interface #10

Open stgeke opened 7 years ago

stgeke commented 7 years ago

Would you consider to provide a Chemkin compatible routine to compute the species production rates.

skyreflectedinmirrors commented 7 years ago

Hi, we're currently in the process of a rewrite to exploit SIMD/SIMT parallelism on both the CPU/GPU. We would welcome a pull request for a Chemkin wrapper for species production (and potentially even the Jacobian) but it is not a priority right now

stgeke commented 7 years ago

I will create a PR with the wrapper. Talking about your optimization effort. Any plans to support vector (for multiple thermodynamic states) evaluations? This could help to improve the vectorization cache line utilization. That's what I do in my hand-tuned kernels (which is about 2x faster than pyJac).

skyreflectedinmirrors commented 7 years ago

Yes, we are specifically targeting:

A) a 'deep' implementation in which the evaluation of the species rates / jacobian will be vectorized for a single state (e.g., evaluation of multiple species rates in vector form) and

B) a 'wide' implementation, that vectorizes species rates / jacobian evaluation across multiple states (as you mention)

This vectorized version will also be sparse (to improve factorization) and will target both the CPU and GPU

kyleniemeyer commented 7 years ago

@stgeke we are still working on this; if you are interested in updates on the project, please join the SLACKHA (larger project that includes pyJac) users' group: https://groups.io/g/slackha-users