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 ofileMany 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