Research Article

Reconstruction for Time-Domain In Vivo EPR 3D Multigradient Oximetric Imaging—A Parallel Processing Perspective

Table 1

Pseudocode of parallelized filtration program (stage 1 of the parallel system).

( )Initialize the OMP environment, set the filtration parameters, set the path of raw oximetric data and filter coefficients
( )Read data and index files, compute actual number of points, compute the filter coefficients, set the number of threads to Max_Threads
( )OPENMP: # pragma omp parallel num_threads (num_thread) default (shared) shared (input_fids, input_bg, back) private (i, j, k, m, wstart, wend) reduction (+: totals) (to start the parallel region)
( )OPENMP: # pragma omp for (to allocate buffer for input_fids, back_subtracted data, real and imaginary parts of the actual number of points)
( )OPENMP: # pragma omp for (reading input_fids, background data from each one of the three gradient data files)
( )OPENMP: # pragma omp barrier (wait for the processors to finish reading of three gradient data files)
( )OPENMP: # pragma omp single for (dummy data writing into random access binary file and header)
( )OPENMP: # pragma omp for nowait (compute background noise)
( )OPENMP: # pragma omp for nowait (compute background noise, subtract from raw signal, compute right position of FID, write the real and imaginary parts of the fids for each of the gradient file)
( )OPENMP: # pragma omp barrier (wait before processing the next gradient)
( )OPENMP: # pragma omp for (deallocate the buffer)
( )OPENMP: # pragma omp end parallel (end the parallel region)