Flat profile:

Each sample counts as 0.01 seconds.

% cumulative self self total

time seconds seconds calls Ts/call Ts/call name

96.02 102.23 102.23 _start

3.79 106.27 4.04 _GLOBAL__sub_I__Z10reportTimePKcNSt6chrono8durationIxSt5ratioILx1ELx1000000EEEE

0.19 106.47 0.20 main

0.00 106.47 0.00 1 0.00 0.00 _init

initialization - took - 0 millisecs

glranieri@matrix:~> a1 50000

Pi: 3.146080

initialization - took - 4 millisecs

glranieri@matrix:~> a1 10000

Pi: 3.171200

initialization - took - 0 millisecs

glranieri@matrix:~> a1 100000

Pi: 3.141520

initialization - took - 8 millisecs

glranieri@matrix:~> a1 1000000

Pi: 3.141664

initialization - took - 70 millisecs

glranieri@matrix:~> a1 10000000

Pi: 3.141130

initialization - took - 786 millisecs

glranieri@matrix:~> a1 100000000

Pi: 3.141698

initialization - took - 9426 millisecs

glranieri@matrix:~> a1 1000000000

Pi: 3.141604

initialization - took - 95026 millisecs

glranieri@matrix:~> a1 100000000

The reason I chose calculating pi is because in breaking down the loop into portions that can be executed by the tasks. Something I find interesting is that the number is so large that the calculation, although close, isn't accurate. Only by having a bigger and bigger number does the number get closer and closer to being true in the conventional sense without using precision point calculation. Since that is the case, optimizing will allow the program to use a bigger number in a quicker time.Flat profile:

Each sample counts as 0.01 seconds.

% cumulative self self total

time seconds seconds calls Ts/call Ts/call name

96.02 102.23 102.23 _start

3.79 106.27...