-
Notifications
You must be signed in to change notification settings - Fork 572
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NetCDF library configuration #99
Comments
Adding Brent and Ross to the discussion. |
Someone should really start putting together build scripts for Trilinos TPLs. I would say that Spack would be the best option to start looking into. |
@bartlettroscoe , we're already doing that on the SEMS side. |
Great! Can you help @gsjaardema out? |
We can offer pre-built hdf5/netcdf for a set of compilers and MPIs |
I'm not sure I (@gsjaardema) need help. I was hoping to add some code to Tribits that would help others who are configuring netcdf and other libraries required/optional for the seacas product. The scripts that I use in the standalone github seacas build take care of setting some options that must be done manually in the Trilinos configuration. For example, in seacas it is automatically deteremined whether netcdf is built with hdf5 (netcdf-4) and pnetcdf libraries as dependencies; similarly for matio and cgns. This must be manually specified in Trilinos configure. The scripts also check for the netcdf modifications highly-recommended for use with exodus. "A supercomputer is a device for turning compute-bound problems into I/O-bound problems" From: "Roscoe A. Bartlett" <[email protected]mailto:[email protected]> @bartlettroscoehttps://github.com/bartlettroscoe , we're already doing that on the SEMS side. Great! Can you help @gsjaardemahttps://github.com/gsjaardema out? Reply to this email directly or view it on GitHubhttps://github.com//issues/99#issuecomment-178829025. |
Ah, sorry I misunderstood what you were asking for. |
That is fine for SNL systems but that does nothing to help others not on an SNL system. Is anyone working on a set of portable build wrappers for these TPLs like exists for Spack:
or like we and other have done for CASL VERA with CMake ExternalProject? I know this is a lot of work, especially to make these portable but that is what Trilinos (and downstream APPs) needs. That is what PETSc has been doing for a long time. |
@gsjaardema, once I get fully implement TriBITS #63, then it will be possible to allow Trilinos (or SEACAS or any other TriBITS project) users to build upstream TPLs like BLAS, LAPACK , SuperLU, HDF5, NetCDF just like existing TriBITS packages. But someone will still need to figure out a portable way to build these TPLs from source on various systems. TriBITS can't magically do that. That is very hard to do in my experience. |
I worded that incorrectly. What I meant was to help others who are On Tue, Feb 2, 2016 at 2:39 PM, Roscoe A. Bartlett <[email protected]
|
@gsjaardema, you should be able to do that with configure-time checks in the SEACAS package (or the appropriate SEACAS subpackage). You can see examples of configure-time tests like this in Teuchos. |
This should be fixed with the adding of the improved NetCDF package find script in TriBITs |
The configuration of the NetCDF library, specifically for parallel builds, is becoming more complex and can cause build issues or reduced functionality if configured incorrectly. For example:
Currently, a developer will build HDF5 with its options; build parallel-netcdf if needed; and then build netcdf -- hopefully pointing it to the correct hdf5 and parallel-netcdf and setting the correct configure options. Then, the developer will configure Trilinos and has to also specify some of these options correctly so that the Exodus library in the SEACAS package will build with the correct capabilities.
This is error-prone and can be difficult to determine what part of the build/configuration was done incorrectly. The stand-alone seacas project (https://github.com/gsjaardema/seacas.git) has some cmake modules that will query the installed NetCDF library and determine whether it was built with no-hdf5, serial hdf5, or parallel hdf5; whether it was built with or without parallel-netcdf; and whether it has the correct values for NC_MAX_DIMS and NC_MAX_VARS. The module then sets the correct cmake variables.
These cmake modules are in the
cmake/modules
in the seacas github repository referenced above.I would like to propose using these modules, or a variant of them in Trilinos to reduce the complexity of configuring the NetCDF and Exodus libraries.
@trilinos/seacas
The text was updated successfully, but these errors were encountered: