Hello,

This may be a bit of a longer post and I am not sure if it is even
appropriate here but I figured I ask. There are no hidden agendas in it, so
please treat it as "asking for opinions/advice", as opposed to judging or
provoking.

For the period between 2010 to 2017 I used to work in (buzzword alert!)
"big data" (meaning Spark, HDFS, reactive stuff like Akka) but way before
that in the early 2000s I used to write basic multithreaded C and some MPI
code. I came back to HPC/academia two years ago and what struck me was that
(for lack of better word) the field is still "stuck" (again, for lack of
better word) on MPI. This itself may seem negative in this context,
however, I am just stating my observation, which may be wrong.

I like low level programming and I like being in control of what is going
on but having had the experience in Spark and Akka, I kind of got spoiled.
Yes, I understand that the latter has fault-tolerance (which is nice) and
MPI doesn't (or at least, didn't when I played with in 1999-2005) but I
always felt like MPI needed higher level abstractions as a CHOICE (not
_only_ choice) laid over the bare metal offerings. The whole world has
moved onto programming in patterns and higher level abstractions, why is
the academic/HPC world stuck on bare metal, still? Yes, I understand that
performance often matters and the higher up you go, the more performance
loss you incur, however, there is also something to be said about developer
time and ease of understanding/abstracting etc. etc.

Be that as it may, I am working on a project now in the HPC world and I
noticed that Open MPI has Java bindings (or should I say "interface"?).
What is the state of those? Which JDK do they support? Most importantly,
would it be a HUGE pipe dream to think about building patterns a-la Akka
(or even mixing actual Akka implementation) on top of OpenMPI via this Java
bridge? What would be involved on the OpenMPI side? I have time/interest in
going this route if there would be any hope of coming up with something
that would make my life (and future people coming into HPC/MPI) easier in
terms of building applications. I am not saying MPI in C/C++/Fortran should
go away, however, sometimes we don't need the low-level stuff to express a
concept :-). It may also open a whole new world for people on large
clusters...

Thank you!

Reply via email to