• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Message Passing Interface Programming

Joined
6/28/09
Messages
69
Points
18
Is there any demand in quantitative finance for people with Message Passing Interface (MPI) programming skills (in C/C++)? I don't see many postings on MPI.
 
MPI has been around for a while. I looked at it in 2004 when I was trying to parallelize a C++ program to speed it up. As far as I could tell, the speedup wasn't mind blowing. Maybe my implementation of the code wasn't optimized.

Forward to 2010 and the world is full of buzz words like CUDA, HPC, high frequency trading, etc. It's a vendor dependent platform so who knows if it will be around in 10 years.

The site I was visiting in 2004 is http://www.mcs.anl.gov/research/projects/mpi/
They are still around and if I have to choose where to invest my time on, I would definitely give MPI a strong consideration.
 
MPI is still big in HPC today; but probably there isn't much talk about it because MPI is the dominant standard for the domain of message passing parallel programming (i.e. programming for clusters of machines connected by high-speed networks), while there is still no dominant standard for the shared-memory programming, as the other main parallel programming paradigm. Shared-memory type of parallel programming gained lots of importance throughout past couple years with advances in multi-core CPU architectures, as well as in usage of GPUs for parallel processing; however these architectures are much more heterogenous than what was the case for message-passing architectures, and also the battle for market between vendors is fierce, so the dominant standard here will still have to emerge (among APIs like OpenMP, CUDA, OpenCL, Ct, etc.). Still, one could pack only several CPU/GPU units within single case, so if you're really after massive performance improvement, you still have to go for multiple machines connected through high-speed network, and hybrid programming approach (MPI for communication between machines, and your shared-memory parallel programming API of choice for the code execution on the individual machines). Further, clusters are commodities today - there exist vendors that are renting processor time (and all of this on an infrastructure specifically adapted for HPC - Amazon EC2 and alike solution were available for long time, but their availability/latency parameters are not satisfactory for HPC work), so it's easier than ever to develop and deploy MPI based solutions. Thus, IMO it is still much worthwhile to learn MPI, and consider it for speeding-up calculations in the quantitative finances domain.

Also - among various MPI implementations, seems like Open MPI is dominant these days.
 
Back
Top