Skip to content
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

Why codes are (again) located under computers? #17

Open
yakutovicha opened this issue Apr 2, 2024 · 5 comments
Open

Why codes are (again) located under computers? #17

yakutovicha opened this issue Apr 2, 2024 · 5 comments

Comments

@yakutovicha
Copy link
Contributor

Previously, we have decided to decouple codes from computers. In this repository, they are brought back together again.

Unfortunately, I missed this part when the repository was introduced. What is the reason for that?

@unkcpz
Copy link
Member

unkcpz commented Apr 8, 2024

Previously, we have decided to decouple codes from computers.

I don't think this is true previously for the aiida-code-registry. For each code it still computer specified by the name of code such as in this folder https://github.com/aiidateam/aiida-code-registry/tree/master/daint.cscs.ch/codes, it has cp2k-9.1-hybrid.yaml and cp2k-9.1-multicore.yaml.
In this repo, it just put the file in the folder under computer without the different file name.

I think the main point is that the filepath_executable is hard to parameterize as a field of template.

@yakutovicha
Copy link
Contributor Author

In this repo, it just put the file in the folder under computer without the different file name.

That is exactly what I referred to. Before the structure was:
domain/computers
domain/codes

Now the structure became:
domain/computers/codes

To simplify the setup we agreed to keep codes alongside computers. Otherwise, we run into combinatorial problems (too many combinations of computers and codes).

@unkcpz
Copy link
Member

unkcpz commented Apr 8, 2024

Otherwise, we run into combinatorial problems (too many combinations of computers and codes).

But you still have the same problem for the code setup configs before, you need distinguish the hybrid with multicore, for GPU/CPU seperately.

@yakutovicha
Copy link
Contributor Author

Otherwise, we run into combinatorial problems (too many combinations of computers and codes).

But you still have the same problem for the code setup configs before, you need distinguish the hybrid with multicore, for GPU/CPU seperately.

Not always, since you can use the CPU codes on the GPU partition. We often do that.

Also, some codes are simply not working on GPU, so they will have to be duplicated.

@unkcpz
Copy link
Member

unkcpz commented May 15, 2024

Not always, since you can use the CPU codes on the GPU partition. We often do that.

My apologize for missing this comment. I didn't realize this use case and it is a strong example that codes located under computers is not a good decision.

I'd like to take couple examples to see how much we can simplify by putting it inside/outside with the computer:

  • QE and CP2K for gpu/mc: can we further generalize the executable paths and module setup to make it only one template yaml file?
  • The code that don't have GPU version exist and run CPU version on the GPU partition. (cp2k-postprocess is one of such type).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants