OpenMP support

Some of the CDO operators are shared memory parallelized with OpenMP. An OpenMP-enabled C++ compiler is needed to use this feature. Users may request a specific number of OpenMP threads nthreads with the '-P' switch.

Here is an example to distribute the bilinear interpolation on 8 OpenMP threads:

cdo -P 8  remapbil,targetgrid  ifile  ofile
Many CDO operators are I/O-bound. This means most of the time is spend in reading and writing the data. Only compute intensive CDO operators are parallelized. The following CDO operators are parallelized with OpenMP:

Module Operator Description
Afterburner after ECHAM standard post processor
Detrend detrend Detrend
Ensstat ens<STAT> Statistical values over an ensemble
EOF eof Empirical Orthogonal Functions
Fillmiss setmisstonn, setmisstodis Set missing value to nearest neighbor
Filter bandpass Bandpass filtering
Filter lowpass  Lowpass filtering
Filter highpass  Highpass filtering
Fourier fourier Fourier transformation
Genweights genbil Generate bilinear interpolation weights
Genweights genbic Generate bicubic interpolation weights
Genweights gendis Generate distance-weighted average remap weights
Genweights gennn Generate nearest neighbor remap weights
Genweights gencon Generate 1st order conservative remap weights
Genweights gencon2 Generate 2nd order conservative remap weights
Genweights genlaf Generate largest area fraction remap weights
Gridboxstat gridbox<STAT> Statistical values over grid boxes
Intlevel intlevel Linear level interpolation
Remapeta remapeta Remap vertical hybrid level
Remap remapbil Bilinear interpolation
Remap remapbic Bicubic interpolation
Remap remapdis Distance-weighted average remapping
Remap remapnn Nearest neighbor remapping
Remap remapcon First order conservative remapping
Remap remapcon2 Second order conservative remapping
Remap remaplaf Largest area fraction remapping
Smooth smooth Smooth grid points
Spectral sp2gp, gp2sp Spectral transformation
Vertintap ap2pl, ap2hl Vertical interpolation on hybrid sigma height coordinates
Vertintml ml2pl, ml2hl Vertical interpolation on hybrid sigma pressure coordinates

With <STAT> = min, max, mean, avg, std, std1, var, var1, pctl