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

Re: netcdf install on Cray3



> Organization: Cray
> Keywords: 199404082139.AA08286

Hi Dave,

> The netcdf software has been installed on the Cray3 machine at NCAR
> (graywolf).  Following are a list of modifications that were needed to get
> the software to install and run correctly on the Cray3:
> 
> 1) Edit the CUSTOMIZE file in the netcdf-2.3.2 directory:
>        CC=/bin/cc
>        FC=/bin/f77
>        FFLAGS= 
>        prefix=/usr/local
>          #
>          # Specify the operating system 
>          OS=csos
>          #
>          # Ensure that the "native" xdr header files and libraries are used
>          #
>          CPP_XDR="/usr/include/rpc"
>          LD_XDR="-l /usr/lib/libnet.a -l /usr/lib/librpc.a"
> 
> 2) Create an operating system file in the netcdf-2.3.2/fortran directory
>    named:
>       csos.m4
>   
>    This is simply the unicos.m4 file with the following change:
>       < define(`M4__SYSTEM',CSOS)
>         ---
>         > define(`M4__SYSTEM', UNICOS)
>  
> 3) Edit the configure script to recognize the LD_XDR definition from above by
>    commenting out the line which redefines LD_XDR to be nothing:
>         < #  *)         LD_XDR=;;
>         ---
>         >   *)          LD_XDR=;;
> 
> 4) Edit the file  netcdf-2.3.2/libsrc/netcdf.h to correctly define FILL_BYTE 
>    for the CCC compilers:
>         < #define FILL_BYTE     ((signed char)-127) /* Largest Negative value 
> */
>         ---
>         > #define FILL_BYTE     ((char)-127)        /* Largest Negative value 
> */
> 
> 
> We (Cray Computer) would like to know if Unidata is willing to add the
> above support to the netcdf install kit so that netcdf correctly installs
> on a Cray3 machine?

Yes, the changes look small enough that I would have no problem adding them
to the source distribution.  I would like to be able to identify the
platform at run-time so I can integerate these changes into our
auto-configure package.  For that, I need to know what predefined constant
is available for specifying this platform.  For example, the UNICOS Cray C
compiler predefines the macro "_UNICOS", so I can test on it with statements
like

    #ifdef _UNICOS
        ...
    #endif

Is there a similar predefined macro for CSOS?

> Additionally, we have developed some very efficient, vectorized Cray <==>
> IEEE floating point conversion routines.  We will be modifying our
> xdr_array() implementaion to use these new conversion routines and would
> also like to modify some of the netcdf-2.3.2/libsrc modules to use them.
>   
> Basically, a single call would be made to convert an arbitrary number of 
> values rather than converting a single value at a time from within a loop 
> as is currently done.  The changes should be very minor.  Again, we would 
> like to know if Unidata is willing to add this support (via conditional 
> compilation directives) to the netcdf sources?

We have had several requests for such an optimization, since currently this
is the main bottleneck in using the netcdf library on Cray platforms.  I
would be willing to add this support, via conditional compilation
directives.  This would be especially useful if it worked for all Cray
platforms, not just the Cray 3.

__________________________________________________________________________
                      
Russ Rew                                              UCAR Unidata Program
address@hidden                                        P.O. Box 3000
(303)497-8645                                 Boulder, Colorado 80307-3000