Skip to content
Snippets Groups Projects
Commit abea8076 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Update OpenMP implementation of frfme()

parent 0b7e3963
No related branches found
No related tags found
No related merge requests found
...@@ -129,19 +129,19 @@ void frfme(string data_file, string output_path) { ...@@ -129,19 +129,19 @@ void frfme(string data_file, string output_path) {
if (tt2 != NULL) { if (tt2 != NULL) {
vkv = tt2->get_vector(); vkv = tt2->get_vector();
vkzm = tt2->get_matrix(); vkzm = tt2->get_matrix();
apfafa = tt2->get_param("apfafa"); apfafa = tt2->apfafa;
pmf = tt2->get_param("pmf"); pmf = tt2->pmf;
spd = tt2->get_param("spd"); spd = tt2->spd;
rir = tt2->get_param("rir"); rir = tt2->rir;
ftcn = tt2->get_param("ftcn"); ftcn = tt2->ftcn;
fshmx = tt2->get_param("fshmx"); fshmx = tt2->fshmx;
vxyzmx = tt2->get_param("vxyzmx"); vxyzmx = tt2->vxyzmx;
delxyz = tt2->get_param("delxyz"); delxyz = tt2->delxyz;
vknmx = tt2->get_param("vknmx"); vknmx = tt2->vknmx;
delk = tt2->get_param("delk"); delk = tt2->delk;
delks = tt2->get_param("delks"); delks = tt2->delks;
nlmmt = (int)tt2->get_param("nlmmt"); nlmmt = tt2->nlmmt;
nrvc = (int)tt2->get_param("nrvc"); nrvc = tt2->nrvc;
} else { } else {
printf("ERROR: could not open TEMPTAPE2 file.\n"); printf("ERROR: could not open TEMPTAPE2 file.\n");
} }
...@@ -273,10 +273,10 @@ void frfme(string data_file, string output_path) { ...@@ -273,10 +273,10 @@ void frfme(string data_file, string output_path) {
long swap1_size, swap2_size, tfrfme_size; long swap1_size, swap2_size, tfrfme_size;
double size_mb; double size_mb;
printf("INFO: calculating memory requirements\n"); printf("INFO: calculating memory requirements\n");
swap1_size = Swap1::get_memory_requirement(lm, nkv); swap1_size = Swap1::get_size(lm, nkv);
size_mb = 1.0 * swap1_size / 1024.0 / 1024.0; size_mb = 1.0 * swap1_size / 1024.0 / 1024.0;
printf("Swap 1: %.2lg MB\n", size_mb); printf("Swap 1: %.2lg MB\n", size_mb);
swap2_size = Swap2::get_memory_requirement(nkv); swap2_size = Swap2::get_size(nkv);
size_mb = 1.0 * swap2_size / 1024.0 / 1024.0; size_mb = 1.0 * swap2_size / 1024.0 / 1024.0;
printf("Swap 2: %.2lg MB\n", size_mb); printf("Swap 2: %.2lg MB\n", size_mb);
tt2 = new Swap2(nkv); tt2 = new Swap2(nkv);
...@@ -374,13 +374,14 @@ void frfme(string data_file, string output_path) { ...@@ -374,13 +374,14 @@ void frfme(string data_file, string output_path) {
#ifdef USE_NVTX #ifdef USE_NVTX
nvtxRangePop(); nvtxRangePop();
#endif #endif
dcomplex *vec_w = new dcomplex[nkv * nkv]();
dcomplex **w = new dcomplex*[nkv];
for (int wi = 0; wi < nkv; wi++) w[wi] = vec_w + wi * nkv;
#ifdef USE_NVTX #ifdef USE_NVTX
nvtxRangePush("j80 loop"); nvtxRangePush("j80 loop");
#endif #endif
#pragma omp parallel for
for (int j80 = jlmf; j80 <= jlml; j80++) { for (int j80 = jlmf; j80 <= jlml; j80++) {
dcomplex *vec_w = new dcomplex[nkv * nkv]();
dcomplex **w = new dcomplex*[nkv];
for (int wi = 0; wi < nkv; wi++) w[wi] = vec_w + wi * nkv;
int wk_index = 0; int wk_index = 0;
for (int jy50 = 0; jy50 < nkv; jy50++) { for (int jy50 = 0; jy50 < nkv; jy50++) {
for (int jx50 = 0; jx50 < nkv; jx50++) { for (int jx50 = 0; jx50 < nkv; jx50++) {
...@@ -419,9 +420,9 @@ void frfme(string data_file, string output_path) { ...@@ -419,9 +420,9 @@ void frfme(string data_file, string output_path) {
} // ix65 loop } // ix65 loop
} // iy70 loop } // iy70 loop
} // iz75 loop } // iz75 loop
} // j80 loop
delete[] vec_w; delete[] vec_w;
delete[] w; delete[] w;
} // j80 loop
#ifdef USE_NVTX #ifdef USE_NVTX
nvtxRangePop(); nvtxRangePop();
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment