PnetCDF

PnetCDF is a library providing high-performance parallel I/O while still maintaining file-format compatibility with  Unidata's NetCDF, specifically the formats of CDF-1 and CDF-2. Although NetCDF supports parallel I/O starting from version 4, the files must be in HDF5 format. PnetCDF is currently the only choice for carrying out parallel I/O on files that are in classic formats (CDF-1 and 2). In addition, PnetCDF supports the CDF-5 file format, an extension of CDF-2, that supports more data types and allows users to define large dimensions, attributes, and variables (>2B elements).

Availability & Restrictions

PnetCDF is available without restriction to all OSC users.

The following versions of PnetCDF are available at OSC:

Version Ruby Owens
1.5.0 X*  
1.7.0   X*

Usage on Ruby

Set-up

To initalize the system prior to using PnetCDF, run the following comand:

module load pnetcdf

Building With PnetDCF

With the PnetCDF module loaded, the following environment variables will be available for use:

Variable Use
$PNETCDF_CFLAGS Use during your compilation step for C or C++ programs.
$PNETCDF_FFLAGS Use during your compilation step for Fortran programs.
$PNETCDF_LIBS

Use when linking your program to PnetCDF.

$PNETCDF Path to the PnetCDF installation directory

 

For example, to build the code myprog.c with the pnetcdf library you would use:

mpicc -c $PNETCDF_CFLAGS myprog.c
mpicc -o myprog myprog.o $PNETCDF_LIBS

Batch Usage

#PBS -N AppNameJob
#PBS -l nodes=1:ppn=20
cd $PBS_O_WORKDIR
mpiexec ./myprog

Usage on Owens

Set-up

To initalize the system prior to using PnetCDF, run the following comand:

module load pnetcdf

Building With PnetDCF

With the PnetCDF module loaded, the following environment variables will be available for use:

VARIABLE USE
$PNETCDF_CFLAGS Use during your compilation step for C or C++ programs.
$PNETCDF_FFLAGS Use during your compilation step for Fortran programs.
$PNETCDF_LIBS

Use when linking your program to PnetCDF.

$PNETCDF Path to the PnetCDF installation directory

 

For example, to build the code myprog.c with the pnetcdf library you would use:

mpicc -c $PNETCDF_CFLAGS myprog.c
mpicc -o myprog myprog.o $PNETCDF_LIBS

Batch Usage

#PBS -N AppNameJob
#PBS -l nodes=1:ppn=28
cd $PBS_O_WORKDIR
mpiexec ./myprog

Further Reading

Service: