#include #include #include #include #include #include _Thread_local unsigned long long sum = 0; _Thread_local unsigned long long nb_points = 0; _Atomic unsigned long long g_sum = 0; _Atomic unsigned long long g_nb_points = 0; int niter = 10000000; int nepochs = 40; int nb_threads = 4; void monte_carlo_pi() { struct drand48_data rand_buffer; srand48_r(pthread_self(), &rand_buffer); for(int i=0; i