If I were to start development of a pricing library, which programming language would be most suitable to satisfy the following needs:

  • Implement highly parallelizable pricing models using GPU or any other hardware enabled techniques;
  • Reasonable maintains costs;
  • Be ready for the next generation of quants (today's students).

The least is an important factor. Being detached from the academic environment do PhD students still know how program in C++?

  • 1
    $\begingroup$ "do PhD students still know how program in C++?" is hardly a quant finance question $\endgroup$
    – LazyCat
    Aug 1, 2018 at 15:37
  • 1
    $\begingroup$ voted to close. But my opinion: python with core-C extensions. Easily deployed, powerful and supportive of a contributing community with different experiences, e.g. Numpy, SciPy. $\endgroup$
    – Attack68
    Aug 1, 2018 at 17:02
  • $\begingroup$ I do not have the reputation to close questions however if I could I would on this one: it's very broad and there are some flaws (e.g., as @LazyCat pointed out "do PhD students still know how program in C++" is not really a question that has anything to do with quantitative finance). The best answer you'll get here is what Attack68 said about being in python as most people are most familiar with it ,and using the popular libraries that python has that are written in C. $\endgroup$
    – Theodore
    Aug 1, 2018 at 19:14
  • 1
    $\begingroup$ Closed as to0 opinion based. I like and upvoted Theodores answer but it's easy to come up with good reasons to use another languages. $\endgroup$
    – Bob Jansen
    Aug 2, 2018 at 8:42

1 Answer 1


There is no one definitive programming language to be used for this.

As Attack68 stated, a library written mostly in Python while taking advantage of Python's fast libraries written in C would be a good choice for the following reasons:

  1. Again, as the comment stated there is a large community of Python programmers, plus the community supporting the respective libraries mentioned (numpy, scipy, etc.)
  2. Python is a very popular programming language, lots of people will use it.

Again, there is no one definitive language that is the best choice for writing a library that takes advantage of GPU hardware or any other hardware.

Implement highly parallelizable pricing models using GPU or any other hardware enabled techniques;

As far as GPUs go, I'd look into the Nvidia CUDA library, which has support for C, C++, Python, Fortran and MatLab. There are bindings for Java, R, and C# as well.

Using Nvidia CUDA you can build a GPU based pricing library, and for that I personally would use C++ but CUDA has support for C and Python as well as stated above.

However the other thing to note here (and something that was not included in the question) is one very important detail: Who is going to use the library, what would they use it for and how does the library set itself apart from the already extremely popular, well documented and community driven libraries for quantitative finance out there? The popular open source QuantLib has a Python version with a great deal of support, it is unlikely that anyone already used to and using QuantLib for Python would switch.

...do PhD students still know how program in C++?

Yes, of course they do. There are several ways you can find this out, including a simple internet search. For example, let's go to the site of the Caltech Department of Computing & Mathematical Sciences. A major part of getting a CS degree at the California Institute of Technology is the C/C++ education, you can view the course catalog for CS11, for example. You see that not only do they have C++ but advanced C++ as well. This was a bit unrelated however I thought it was necessary given your statement regarding whether or not C++ is still taught at prestigious technical universities.

The two languages that I would chose from are C++ and Python, and in the case of the latter taking advantage of Python's quick Fortran libraries.


Not the answer you're looking for? Browse other questions tagged or ask your own question.