Practice of setting parallelism as the default behaviour This is a soft, and probably also an opinion based question.
Suppose I am writing a library in C++ for the purposes of working with financial data. My goals are:

Since I work with big data, I want to make it as fast as possible by using parallel computing principle inside the functions.
I want my colleagues to use this library without understanding/tweaking the parallelism underneath the functions.

The resulting questions are:

Is this a good idea to make parallelism the default behaviour? For instance sum(vector) to parallelise the summation without asking the user.
If yes, is there any rule of thumb that would cover the default behaviour of the task split between the processors? I.e. how many processors I should use?

Thanks in advance.
Have fun. If you use multiple threads you need to make sure that the overhead doesn’t outweigh the savings. The number of processors to use depends on the number of available processors, their properties (hyperthreading, performance vs. power saving), and the usage of the machine including the OS. And making one task fast may have negative side effects on the machine as a whole. Summary: It’s difficult.
Set your priorities: First make it work. Second make it maintainable. Third if required measure to find performance problems and fix them by using code that is not stupid (in the last ten years 99% of my performance problems were caused by stupid code and fixed by using code that isn’t stupid), then by using good code, then by using optimised vector code. Using multiple threads should be your very last resort.