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

Adding documentation on how to build and run on top of EESSI without EB #175

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

hvelab
Copy link

@hvelab hvelab commented Apr 30, 2024

To follow up the short-term solution in issue https://gitlab.com/eessi/support/-/issues/48

Copy link
Member

@ocaisa ocaisa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hvelab This is a good start. I think it is probably worth explaining the weird addition of the GCCcore path to LD_LIBRARY_PATH

docs/using_eessi/building_on_eessi.md Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
Copy link
Member

@ocaisa ocaisa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good.

docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved

The safest way to make sure all libraries will point to the required locations (and do not leak in from the host operating system) is starting an EESSI prefix shell before building. To do this:

* First of all, load the environment by starting an EESSI shell as described [here](https://www.eessi.io/docs/using_eessi/setting_up_environment).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of these steps actually start a prefix shell! If you want to prefix shell you need to run

$EESSI_EPREFIX/startprefix

and after you do this, your environment will be completely emptied in the subshell that gets started (including EESSI), so you need to reinitialise again.

docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
```sh
export LD_RUN_PATH=$LIBRARY_PATH:$EBROOTGCCcore/lib64
```
* Compile and make sure the library resolution points to the EESSI stack. For this, `ldd` from compatibility layer and **not** `/usr/bin/ldd` should be used when checking the binary.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably best to provide a running example here so people have a clearer idea of what you are talking about

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about an MPI "Hello world" example?

docs/using_eessi/building_on_eessi.md Outdated Show resolved Hide resolved
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

Successfully merging this pull request may close these issues.

2 participants