-1
$\begingroup$

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++?

$\endgroup$

closed as primarily opinion-based by Attack68, LazyCat, LocalVolatility, Helin, Bob Jansen Aug 2 '18 at 8:40

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    $\begingroup$ "do PhD students still know how program in C++?" is hardly a quant finance question $\endgroup$ – LazyCat Aug 1 '18 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 '18 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 Weld Aug 1 '18 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 '18 at 8:42
1
$\begingroup$

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.

$\endgroup$

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