int main () { HPCC_Params *params = initialize(); double copyGBs, scaleGBs, addGBs, triadGBs; int failure; HPCC_Stream (params, 1, ©GBs, &scaleGBs, &addGBs, &triadGBs, &failure); return 0; }
int main(int argc, char **argv) { int num_nodes = xmp_num_nodes(); /* Set parameters */ if(argc != 2){ #pragma xmp task on p(1) fprintf(stderr, "./STREAM (number of vector).\ne.g../STREAM 1000\n"); return 1; } array_elements = atoi(argv[1]); /* Malloc arrays */ a = malloc(sizeof(double) * array_elements); b = malloc(sizeof(double) * array_elements); c = malloc(sizeof(double) * array_elements); /* Initialize arrays */ #pragma omp parallel for for(int j=0;j<array_elements;j++){ a[j] = 1.0; b[j] = 2.0; c[j] = 0.0; } /* Execute STREAM */ double triadGBs = HPCC_Stream(); #pragma xmp task on p(1) printf("[Vector size is %d] Total Triad %.4f GB/s on %d nodes\n", array_elements, triadGBs, num_nodes); #include <omp.h> #pragma xmp task on p(1) { #pragma omp parallel { #pragma omp single printf("Number of Threads requested = %d\n", omp_get_num_threads()); } } /* Verification */ checkSTREAMresults(num_nodes); return 0; }