-
Notifications
You must be signed in to change notification settings - Fork 109
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
Fenix new #225
base: main
Are you sure you want to change the base?
Conversation
… required making certain functions in header files static to avoid duplicates.
…econstructing kernel data structures (especially sparse matrix elements) after a fault.
…lytical data recovery.
…x.in to make sure ULFM sees the whole path to mpirun
…cation in Fenix build tree
It is not important but OpenMPIv17.1 doesn't exist. Do you mean Open-MPI 1.7.1? It sounds like I need to add Open-MPI to Travis. |
Apologies. Indeed, OpenMPI 1.7.1 is the version required at present. It is obtained using Mercurial. I will send instructions. The Fenix library is also required. I will send instructions for that as well. |
Please fix issues with
|
Thanks for getting cracking on my pull request. I'll figure out what went wrong and fix it. |
Can you check to see if there is a conflict in make.common? I have this in the version that should have been committed and push to branch Fenix_new:
|
Just push to your branch and GitHub will determine if there is a conflict.
|
That was a typo on my part. I had already pushed my branch. |
…ed codes will differ from one system to the next.
@rfvander The problem is that You need to implement MPI1's AMR without Fenix-related dependencies.
|
Fixed in fa2ce89 |
I'm not sure I understand. I had pulled the body out of the main iteration loop only for the Fenix implementations of the PRKs, and in that case Fenix-related dependencies would always be resolved. I had not done this for MPI1, so there should not be a problem. |
Try to build |
|
That is actually a matter of garbage collection. File timestep.c in that directory is not used to build the kernel. It must be left over from my work on Fenix, and should be removed.
|
Then where does https://github.com/ParRes/Kernels/blob/Fenix_new/MPI1/AMR/amr.c#L815 come from? |
049f59a is when the definition of
|
Ah, I was on branch master. I will check this out later tonight. Sorry. |
It builds clean now but |
OK, I'll take care of it. The reason MPI1/AMR has the split structure is because I wanted to create a simple example for the Fenix version. I should have reverted to the original form, but somehow managed to delete it. But we could have a longer discussion about the desirability of the split. I purposely tried to keep the kernels flat (a single file and, if possible, a single function, except library calls), so that the compiler always has maximum knowledge without the user having to use compiler-specific flags to enable cross function and cross module optimization. |
the merge fix in amr.c was trivial but the new code is not used so i don't really know what is going on with it.
Fenix_new adds Fenix versions of Stencil, Transpose, AMR, and Sparse to the repo, using split main programs to make sure the compiler can optimize the performance sensitive part of the kernels. The implementations have been tested with OpenMPIv17.1