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 and Restrictions

Versions

The following versions of PnetCDF are available at OSC:

Version Ruby Owens
1.5.0 X*  
1.7.0    X*
* Current default version

You can use module spider pnetcdf to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.

Access

PnetCDF is available without restriction to all OSC users.

Usage

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: