-
Notifications
You must be signed in to change notification settings - Fork 67
Add option to build mesh partitioner with main build #705
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
Conversation
Adds a new option BUILD_MESHPARTITIONER to the main fesom build that will build the mesh partitioner as well.
|
ESM-Tools can be changed, and the changes would only be in the configuration files, not in the backend, so ESM-Tools should not be blocking this at all, I think is a good idea to have it like this :) In any case, I don't think anyone is using the mesh partitioning through ESM-Tools. |
I can second that. We have a |
|
Haven't tried this in detail yet but this is a very good idea! Thanks for the initiative @sebastianbeyer |
|
I tried using an esm_tools generated script (/work/ab0246/a270092/model_codes/comp-fesom-2.6_script.sh), modified to: and get: Using the configure.sh script that comes with the source code, the option works for me. |
|
are you sure you are doing a clean build? |
You are correct, I thought I did, but now that I tried it again it works. |
|
So far, the linked binary is installed to |
|
I don't have a strong opinion on the name of the binary... |
|
I saw in the job_ini scripts that in some the mesh partitioner is called with mpi, but with only a single task: |
I don't know. @dsidoren, @patrickscholz? |
|
also, should building the partitioner be on or off by default? |
|
Is it CI tested? If so, it can be on. |
It did long time ago, but now we only run it as a single core job, I think :) |
It is: https://github.com/FESOM/fesom2/actions/runs/15120009102 |
But it does work with more? would be nice to have it go faster for large meshes, I guess? |
|
I had no problems even with the largest ones, and the most time consuming is writing out the output, which I think is still serial. I would put it as something nice to have, but not critical. |
|
okay, this is very weird! since you set the default to building the mesh partitioner as well, @JanStreffing , the build with openmp fails with |
In this block set CMAKE_Fortran_MODULE_DIRECTORY to something different from the 'normal' fesom module dir to not have a problem in a parallel build where some module files are being written and read at the same time (for modules that are shared between fesom main and mesh partitioner). Would probably better to just link fesom as library to mesh partitioner as well, but that currently implies other issues.
|
Looks good. Shall I press the button? |
|
Thanks for fixing the typo! @suvarchal also tried something here: #707 I currently don't see how that is better than this, but I'd like to understand the difference first, before deciding :) |
Adds a new option BUILD_MESHPARTITIONER to the main fesom build that will build the mesh partitioner as well.
This makes it easier to build it together with the model in the ifs-bundle, so that we can add some automation to generate missing partitioning files.
I would like to keep this as the only way to build the partitioner to have only one central CMakeLists.txt but I left the current option because I don't know if anything (ESMtools...? @mandresm ) relies on this being build this way.