tweak: savepoint; test hypothesis over previous stuff.
This commit is contained in:
		
							parent
							
								
									3d3a3f0045
								
							
						
					
					
						commit
						1bc7c90fcf
					
				|  | @ -180,19 +180,26 @@ float mixture(float (*samplers[])(uint32_t*), float* weights, int n_dists, uint3 | |||
| 
 | ||||
| // Parallization function
 | ||||
| void paralellize(float (*sampler)(uint32_t* seed), float* results, int n_threads, int n_samples){ | ||||
| 
 | ||||
|     if((N_SAMPLES % n_threads) != 0){ | ||||
|         fprintf(stderr, "Number of samples isn't divisible by number of threads, aborting\n"); | ||||
|         exit(1); | ||||
|     } | ||||
|     // int n_samples_per_thread = N_SAMPLES / n_thread;
 | ||||
|     int sample_index, i, split_array_length; | ||||
|     int n_samples_per_thread = N_SAMPLES / n_threads; | ||||
| 
 | ||||
|     float** split_results = malloc(n_threads * sizeof(float*)); | ||||
|     for(int i=0; i<n_threads; i++){ | ||||
|         split_results[i] = malloc(n_samples_per_thread * sizeof(float)); | ||||
|     } | ||||
| 
 | ||||
|     uint32_t** seeds = malloc(n_threads * sizeof(uint32_t*)); | ||||
|     for (uint32_t i = 0; i < n_threads; i++) { | ||||
|         seeds[i] = malloc(sizeof(uint32_t)); | ||||
|         *seeds[i] = i + 1; // xorshift can't start with 0
 | ||||
|     } | ||||
| 
 | ||||
|     #pragma omp parallelz private(i, sample_index, split_array_length) | ||||
|      | ||||
|     int i; | ||||
|     #pragma omp parallel private(i) | ||||
|     { | ||||
|         #pragma omp for | ||||
|         for (i = 0; i < n_threads; i++) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user