Distributed-memory parallelism. In particular interaction with GPUs and other accelerators (not my specialty, and probably mostly something for external libraries to figure out, but I’d like any obstacles to be removed for people who do want to work on this).
I’ve cited one obstacle before, it has to do with generating wrappers to C libraries.
The MPI standard defines some constants, these are C macros in MPI libraries, but in each library they have potentially completely different values (and types).
It would be helpful if the C Preprocessor could be run via rustc to substitute these values automatically on FFI.
Of course one can have a script that does this before calling rust C, but that complicates the way you can use crates io to include such wrappers in your project, since it is not enough to get the rust code and compile it, but you have to preprocess the code in an intermediate step before using it, and maybe do so multiple times if you change the underlying MPI implementation in a cluster via a module system.