• Forum
  • Lounge
  • Master's in high-performance computing u

 
Master's in high-performance computing using C++?

I'm currently studying for my Master's in a STEM field. I use alot of C++ and the code also uses parallel programming. I'm aware some jobs exist as supercomputing centers, oil/gas, and in finance in HFT. I am not interested in working in defense or a govt lab.

1. Are the jobs in C++/HPC/MPI for MS-holders any more lucrative than the entry-level jobs that CS grads get? What about compared to data scientist jobs?
2. Would having an MS in HPC (not phd) give me any advantage over those with just a BS in CS?
3. For a career in HPC, should I focus more on learning MPI/OpenMP or improving my skill with C++?

To improve your skill in C++, I would suggest you write a program without using third party libraries (not practical, and would take a long time, but certainly would improve your skill). Another alternative is just to practice writing whatever, and make it more efficient than it's first incarnation. Mabey replace calls to functions in third party libraries with one of your own implementation as a way to learn about how they did it.

As far as I know, there are more jobs in Java than C++, because most businesses just want programs that make things easier. Most of the time they don't even care if it even works right (I worked on code that was outsourced, and it didn't even do what it was supposed to do!), just that it gives them the results they want.
And now to actually answer the OP's questions. Though, to be fair, you really should have done this research BEFORE applying for the program.

1. Yes, about $5k-$10k more on average. It ain't that much.
http://news.dice.com/2013/07/25/should-programmers-get-a-masters-degree-in-cs/

2. Having an MS in general might actually hurt your chances in some places. The general line of reasoning in those places is "why would you go back to school when you already have a BS, after all the fundamentals are taught?"
http://www.forbes.com/sites/quora/2013/05/09/how-different-is-a-b-s-in-computer-science-from-an-m-s-when-it-comes-to-recruiting/

EDIT: And for those jobs where having an MS is a big plus, you're also likely to need significant prior industry experience.

3. Learning a parallelization API (MPI/OpenMP) is key in HPC. You don't want to be hand-writing the thread code every time you need to parallelize something, do you?

-Albatross
Last edited on
Don't forget Cuda or OpenCL, or at least something like Thrust. Most high performance systems now days are making heavy use of GPU's. Programming for a modern super computer will likely entail a combination of MPI, Cuda ( or other GPU programming language ), and probably some OpenMP, or raw threading. OpenMP is getting more powerful constantly as well. Soon it will also be able to abstract GPU computation.

If you get a Masters in HPC, I would think you will have a much better shot at getting a nice job in HPC; especially if you have an impressive project or thesis to show off in the end, and you will likely have an advisory who can be a huge help in getting you a job afterwards ( through recommendation ).

I suspect that many jobs in HPC pay a lot because there are some really mission critical applications where speed is essential, for example wall street. I actually wouldn't be surprised if some HPC jobs are among the highest paying programming jobs of all. Then again, maybe these jobs are also competitive. They want to hire geniuses, and you have to be pretty clever to be of any use in HPC anyways.

Also, a whole lot of super-computer code is written in FORTRAN, so it might be helpful to familiarize yourself with that too.

Of course, learning the languages isn't the hard part, it's getting good at coming up with clever hacks and tricks in order to figure out how you can actually solve a problem in parallel, as well as how you can make low level optimizations that exploit your hardware.
Last edited on
If you get a Masters in HPC, I would think you will have a much better shot at getting a nice job in HPC; especially if you have an impressive project or thesis to show off in the end, and you will likely have an advisory who can be a huge help in getting you a job afterwards ( through recommendation ).

I suspect that many jobs in HPC pay a lot because there are some really mission critical applications where speed is essential, for example wall street. I actually wouldn't be surprised if some HPC jobs are among the highest paying programming jobs of all. Then again, maybe these jobs are also competitive. They want to hire geniuses, and you have to be pretty clever to be of any use in HPC anyways.


My project doesn't have much parallel programming in it. I'm just starting to self-learn it. As for the high-paying HPC jobs, do they really exist outside of wall street? I'm not interested in moving there and I just feel like HPC requires more work/skills/IQ than a typical web developer role so that's why I wanted to know if the salaries are any better or not.
Topic archived. No new replies allowed.