DOI-BOR / ostrich

An optimization toolkit for model calibration
GNU General Public License v2.0
1 stars 1 forks source link

Organization #3

Closed dloney closed 4 years ago

dloney commented 4 years ago

Updates organization to improve the project structure. Updates the makefile, requiring an MPI based build to satisfy the mpi headers.

julemai commented 4 years ago

@dloney Thanks for restructuring. I will look into this ASAP. Likely tomorrow. :)

dloney commented 4 years ago

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.

julemai commented 4 years ago

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.

dloney commented 4 years ago

Boost is open source, free, and publicly available. I'm not sure if I'm following your concern for introducing it as a dependency.

dloney commented 4 years ago

Do you have a makefile for how you're building against the MPI stub when doing the serial compile?

julemai commented 4 years ago

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.

dloney commented 4 years ago

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.

dloney commented 4 years ago

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