C # HPC - MPI and OpenMP

I am looking for some recommendations with C # and concurrent programming. I know that MPI.NET exists and OpenMP is not supported. Then my question is: is there any other library (TPL?) Or a function that can fulfill the functionality provided by OpenMP? I will work (hopefully!) With the latest version of mono (C # .NET 4.0). The code will run on Cray XT6M, so using resources on each board and node will be important. Thank you for your time!

+6
source share
2 answers

You can take a look at Dryad , a parallel approach to Microsoft programming, where C # is actually a first-class citizen. Apparently, Microsoft uses it for Bing and trains body tracking algorithms for Kinect [ 2 ]. It uses coarser parallelism data than OpenMP. This is more like processes with channels than threads with shared memory.

I am afraid that installing it on a Mono / Linux / Cray system will probably be hard to say at least. However, C # is not your typical HPC language. As a rule, it is very difficult to effectively run C # on this scale / type of system. I would recommend evaluating the migration of your software to HPC "first class" language, for example. C, Fortran.

Also as a note: OpenMP does not scale across the full Cray XT6M machine (or any HPC cluster, for that matter), you can use this form of parallelism (shared memory). For communication between nodes, you need another form of parallelism, usually MPI. You can also use MPI in node.

+4
source

C # is a great language for many things, but by itself, it will not make full use of this Cray. Microsoft developers are optimizing libraries for a dozen cores or less, and most likely, Xamarin developers are more worried about cell phones. You want to use MPI or another parallel programming language below you. You can do this with C # and several other languages ​​(python is also popular in the HPC world), but the key sits on top of the correct libraries. TPL will not cut it on this parallelism scale.

+1
source

Source: https://habr.com/ru/post/906985/


All Articles