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