Compile um programa C com o GCC, para que ele possa usar todos os núcleos da CPU no linux
Eu tenho um programa C de amostra para adição. Quando eu compilar e executar com o GCC, ele estará usando apenas um núcleo da CPU.
Existe alguma maneira de compilar um programa C para que ele possa usar todos os núcleos da CPU no Linux.
Eu costumava compilar comogcc -O3 malloc.c
Código:
#include <stdio.h>
#include <time.h>
#include <malloc.h>
int main() {
float *ptr;
unsigned long long i;
ptr = (float*) malloc(8000000000 * sizeof(float));
for(i=0; i<8000000000; i++) {
ptr[i] = i/10000;
}
clock_t tic = clock();
for(i=0; i<8000000000; i++) {
ptr[i] = (i/10000)+1.0;
}
clock_t toc = clock();
printf("Elapsed: %f seconds\n", (double)(toc - tic) / CLOCKS_PER_SEC);
return 0;
}