[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 20040526: asynchronous read ahead and write behind on NetCDF



Giang,

>Date: Wed, 26 May 2004 15:30:32 -0400
>From: Giang Nong <address@hidden>
>Organization: GFDL/NOAA
>To: Steve Emmerson <address@hidden>
>Subject: Re: 20040526: asynchronous read ahead and write behind on NetCDF
> Keywords: 200405242114.i4OLENtK012695 netCDF

The above message contained the following:

> I am confused here. IRIX 6.5 does have FFIO system. When I type "man 
> intro_ffio" on IRIX system I get the following:
> ---------------------------------
> INTRO_FFIO(3F)                                        Last changed: 9-30-99
> 
> NAME
>      INTRO_FFIO - Describes performance options available with the FFIO
>      layers
> 
> IMPLEMENTATION
>      See individual man pages for implementation details.
> 
> DESCRIPTION
>      The Flexible File I/O (FFIO) system lets the user specify a comma-
>      separated list of layers through which I/O data is to be passed.  This
>      is done by providing a value for the spec argument to the -F option on
>      the assign(1) command.  This specifies a class of processing to be
>      done on the data.
> -------------------------------
> I guess that IRIX FFIO is similar to UNICOS FFIO, it also has bufa, cachea... 
> for asynchronous I/O ...
> Inside I wonder if NetCDF code there is something like : 
> if 
>       this is UNICOS then implement netcdf_ffiospec
> else
>       ignore netcdf_ffiospec
> 
> What happen in NetCDF code when I introduce netcdf_ffiospec. I can introduce 
> netcdf_ffiospec via assign -F command. How can I check if asynchrous I/O is 
> working in NetCDf or not?

Interesting!  I wonder if the interface in the netCDF package to the
FFIO subsystem will work under IRIX.

The first thing to do is build a netCDF package that uses the "ffio"
module instead of the "posixio" one.  Change the file "libsrc/ncio.c"
from

    #if defined(_CRAY)
    #   include "ffio.c"
    #else
    #   include "posixio.c"
    #endif

to just

    #include "ffio.c"

Then, execute the following commands:

    make distclean
    make

Redirect the standard and error output of the last command to the 
file "make.log", e.g.,

    make >make.log 2>&1

Let me know if it works.  If it doesn't, then send me the file
"make.log".

If it does work, then execute the command

    make test

Again, redirect the standard and error output of the last command to the
file "test.log", e.g.,

    make test >test.log 2>&1

Let me know if it works.  If it doesn't, then send me the files
"make.log" and "test.log.

Regards,
Steve Emmerson