Conversation
|
|
||
| if '+dap' in spec or '+cdmremote' in spec: | ||
| # Make sure Netcdf links against Spack's curl, otherwise | ||
| # otherwise it may pick up system's curl, which can give link |
alalazo
left a comment
There was a problem hiding this comment.
All the changes but the introduction of static look fine to me.
| variant('mpi', default=True, description='Enables MPI parallelism') | ||
| variant('hdf4', default=False, description='Enable HDF4 support') | ||
| variant('shared', default=True, description='Enable shared library') | ||
| variant('static', default=True, description='Enable static library') |
There was a problem hiding this comment.
This is the only package that uses the static variant, and if I am not wrong we decided a while ago to use just shared. Anyhow: what would be the semantic of
spack install netcdf~shared~staticthat is now allowed?
There was a problem hiding this comment.
i agree with @alalazo , either build static always, or build static when ~shared.
There was a problem hiding this comment.
@aprokop I thought it was, but sadly I cannot find it. What all the other packages do is to build both shared and static libraries when +shared and just static when ~shared.
There was a problem hiding this comment.
citibeth
left a comment
There was a problem hiding this comment.
I'm concerned about depending on parallel-netcdf. What version of NetCDF are you building here? The latest version of NetCDF4 does not seem to have a configure flag named --enable-pnetcdf.
AFAIK, Argonne's pnetcdf is now obsolete with NetCDF4.
|
@citibeth If you download the latest version, 4.1.1.1, it does indeed have the |
Thanks, good detective work. Like you, without further evidence I'm still dubious that |
Oh, I did not even realize that. I'm building netcdf 4.3.3.1, and was told by a person of the code that it needs both I will try to dig deeper to figure out when pnetcdf option is available. |
Did you mean 4.4.1.1? According to this, the Couple quick questions:
depends_on("parallel-netcdf", when='+parallel-netcdf' && '@4.2.1.1:')Or do I have to do the |
Yep, my bad
I don't think there is currently a way to make a variant unavailable for a certain version, although you can raise an error if someone tries to use it on a version where it is unavailable. See
Yep, it would look like this: depends_on('parallel-netcdf', when='@4.2.1.1:+parallel-netcdf') |
0b1d92d to
94a5447
Compare
|
Updated PR:
I had to add |
| depends_on("[email protected]:") | ||
| depends_on("[email protected]:", when='+dap') | ||
| depends_on("[email protected]:", when='+cdmremote') | ||
| if spec.satisfies('@4.2.2.1:'): |
There was a problem hiding this comment.
spec is not defined in this context. You'll need to try my suggestion of putting the version in when.
- Added 'dap' and 'cdmremote' variants This is based on work in spack#2324 with the following motivation: Turn off DAP support by deafult. DAP requires curl, which has issues with circular dependencies. For 95% of NetCDF users that do not need DAP, turning it off avoides this rats nest of problems. - Added 'parallel-netcdf' variant To support work with parallel-netcdf - Added 'shared' and 'static' build separation
94a5447 to
d658d39
Compare
|
Updated PR with @adamjstewart comments on |
| # PnetCDF support | ||
| if '+parallel-netcdf' in spec: | ||
| config_args.append('--enable-pnetcdf') | ||
| config_args.append('CC=%s' % spec['mpi'].mpicc) |
There was a problem hiding this comment.
What happens when someone tries to build netcdf+parallel-netcdf~mpi?
There was a problem hiding this comment.
I guess I don't know. The simplest way would be to prohibit parallel-netcdf without mpi, but again I don't know if it makes sense.
There was a problem hiding this comment.
Also, out of curiosity, what exactly is the difference between netcdf+mpi and netcdf+parallel-netcdf? I've never used either, but my users regularly use serial netcdf and parallel-netcdf.
There was a problem hiding this comment.
The simplest way would be to prohibit parallel-netcdf without mpi
i would say thrown an error if someone tries to do it.
|
Something in me is not comfortable with a variant having a dash in it. The difference is... NetCDF4 is no longer a format itself; it is a front-end on top of an HDF5 If building a new project, I would use NetCDF4+HDF5, since HDF5 also offers On Tue, Nov 22, 2016 at 3:03 PM, Adam J. Stewart [email protected]
|
|
Does the On Tue, Nov 22, 2016 at 3:28 PM, Denis Davydov [email protected]
|
|
I agree with renaming the variant to |
I'm actually not sure any more. Looking at the old spec, Few interesting bits of information from here:
So, I think it does need MPI when compiling with line as I only needed that for static builds, and I have not checked for shared. In summary, a) I will rename the variant to One of the remaining questions I have: it seems that Regarding the |
|
Consider using the netcdf cmake build instead of autotools. Cmake knows
|
Would not that require to completely redo the whole spec? |
|
We've discussed CMake vs. Autotools for the NetCDF package before: #400 (comment) We decided to stick with Autotools because it can build older versions of NetCDF. I also don't see any problems with the current Autotools build. |
|
I would keep 'parallel-netcdf' as package name as it is self-explanatory, whereas pnetcdf to me sounds close to python namings (i.e. py-netcdf). |
|
@aprokop @citibeth: how about |
|
I would rather just keep `parallel-netcdf`
…On Thu, Nov 24, 2016 at 3:25 PM, Todd Gamblin ***@***.***> wrote:
@aprokop <https://github.com/aprokop> @citibeth
<https://github.com/citibeth>: how about parallel for the variant name?
We've used this on some other packages. I'm sometimes not a fan of it
because parallel can mean MPI, OpenMP, pthreads, or whatever, but there
is really only one type of parallel NetCDF and I think the concept of
parallel I/O, at least in HPC, is fairly well understood. Decent compromise?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2377 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AB1cd6Yi_vcOIK6yy5KEfDG85TU0HEh7ks5rBfKogaJpZM4K4w-g>
.
|
|
Going with |
- Added 'dap' and 'cdmremote' variants This is based on work in spack#2324 with the following motivation: Turn off DAP support by deafult. DAP requires curl, which has issues with circular dependencies. For 95% of NetCDF users that do not need DAP, turning it off avoides this rats nest of problems. - Added 'parallel-netcdf' variant To support work with parallel-netcdf - Added 'shared' and 'static' build separation
This is based on work in netcdf: Turn off DAP support by deafult. #2324 with the following motivation:
Turn off DAP support by deafult. DAP requires curl, which has issues
with circular dependencies. For 95% of NetCDF users that do not need
DAP, turning it off avoides this rats nest of problems.
To support work with parallel-netcdf