Project

General

Profile

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
EcaEtccdi etccdi_tx90p Percentage of Days when Daily Maximum Temperature is Above the 90th Percentile
EcaEtccdi etccdi_tx10p Percentage of Days when Daily Maximum Temperature is Below the 10th Percentile
EcaEtccdi etccdi_tn90p Percentage of Days when Daily Minimum Temperature is Above the 90th Percentile
EcaEtccdi etccdi_tn10p Percentage of Days when Daily Minimum Temperature is Below the 10th Percentile
EcaEtccdi etccdi_r95p Annual Total Precipitation when Daily Precipitation Exceeds the 95th Percentile of Wet Day Precipitation
EcaEtccdi etccdi_r99p Annual Total Precipitation when Daily Precipitation Exceeds the 99th Percentile of Wet Day Precipitation
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
Intlevel3d intlevel Linear level interpolation from/to 3D vertical coordinates
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
Runpctl runpctl Running percentile values
Smooth smooth Smooth grid points
Spectral sp2gp, gp2sp Spectral transformation
Vertintap ap2pl, ap2hl Vertical interpolation on hybrid sigma height coordinates
Vertintgh gh2hl Vertical height interpolation
Vertintml ml2pl, ml2hl Vertical interpolation on hybrid sigma pressure coordinates

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