Closed dloney closed 4 years ago
@dloney Thanks for restructuring. I will look into this ASAP. Likely tomorrow. :)
Actually, as I'm adding the documentation, there's an MPI stub class that could potentially allow a serial, non-MPI based build. I'd argue for depreciating that since that workflow is functionally the same as running MPI with one worker. It will simplify development and the build structure as well if we assume an MPI based build going forward.
I would actually not assume that people are willing to compile with MPI option. It was really convenient that one had the option to compile non-MPI and with MPI. Also, the assumption that people have an additional library like boost
might be quite limiting.
Boost is open source, free, and publicly available. I'm not sure if I'm following your concern for introducing it as a dependency.
Do you have a makefile for how you're building against the MPI stub when doing the serial compile?
Boost is open source, free, and publicly available. I'm not sure if I'm following your concern for introducing it as a dependency.
We have NetCDF
(which is also open-source and free) in the Raven model as a dependency. But yet it is really hard to convince users to get this installed on their systems. That's why I think it is a good option to not assume anything additional to be installed.
Do you have a makefile for how you're building against the MPI stub when doing the serial compile?
The standard makefile that came with my current Ostrich code as the option to do, for example, make GCC
. I will send you by email.
I just reworked the makefile to handle the memory and disk based stubs correctly. I also reworked the main code not to need the mpi_stubs file, and rely only on the mpi files when using an mpi based compiler. This is a better way of handling the MPI compilation when using the stubs.
We have
NetCDF
(which is also open-source and free) in the Raven model as a dependency. But yet it is really hard to convince users to get this installed on their systems. That's why I think it is a good option to not assume anything additional to be installed.
Moving this conversation to #4
Updates organization to improve the project structure. Updates the makefile, requiring an MPI based build to satisfy the mpi headers.