Patnaik's Lab

I have a soft corner for C++, with the language being something I started with and is much closer to the machine.
C++ source has a place outside its normal habitats at different parts of the spectrum. Starting from the entrance in the form of competitive programming to the hearts of servers in enterprise.
I also believe it has a place in anybody’s heart who wants to experiment with things, which is currently dominated by JavaScript and Python (and for very good reasons, nothing against those languages).

C++ source is highly cross platform, and can run from anything like a Raspberry Pi to a Threadripper to an Android/iOS smartphone.
It can also run in modern browsers(definitely not IE) in the form of webassembly.

So maybe someday if you want to write a high performance data transformation routine for your ML algorithm in React app, you can experiment with C++.

ThreadsOnCores

There are a lot of existing knowledge on processes, CPU cores and threads. And they can go in much greater depth than I do here.

Briefly, modern CPUs on desktops, laptops and mobiles have multiple cores. Each individual core can execute instructions independtly of the others. This allows us to have parallelism, i.e. we can simultaneously run different processes on computers. There is also concurrency, which is very related but slightly different.

For our discussion, we focus on parallelism in the context of CPUs (you can also use GPUs, separate topic).

https://medium.com/media/b8720fce8798901da09909f780ed967d/hrefhttps://medium.com/media/342db02d7df3c8adf80c7162e948e971/href