-
Notifications
You must be signed in to change notification settings - Fork 217
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
Wexac Cluster at Weizmann #3496
Comments
Hi guys and welcome to my first github comment! Here's the .tpl file Axel helped me to create: Sadly things are not yet working, i.e., I can't get tbg to submit to the user given queue at the moment. Thanks in advance for your help! |
@danlevy100 I would be glad to help you setting up the configuration for Wexac. Since I am busy till Tuesday evening, I could start to look into this on Wednesday. Would this be fine with you? |
Thank you for taking care of this, @PrometheusPi 👍 |
That would be great, @PrometheusPi. Thanks! I'll try to make some progress on my own in the meantime. |
@danlevy100 can you please document the current error message about the memory here? |
After submitting the LaserWakefield example with tbg -s bsub -c etc/picongpu/1.cfg -t etc/picongpu/wexac-wis/gpu_batch.tpl ~/picOutput/LaserWakefield -f I get: "femalka" is Victor's username in fact... I have no idea why it appears here. |
In order to figure it out, it would be helpful to see what is the resulting submission command after |
Sure, here it is: |
Thank you @danlevy100 . So far I see an issue in the |
In case it does not fix the problem, I think the relevant information may be not just in |
Thanks @sbastrakov for having a look. I saw this but thought that maybe it was just to comment out the line. I have removed it anyway and submitted and still no go. |
Sine the error message was about memory, could you please decrease the set memory from EDIT:
|
Furthermore you seem to not define a project |
If this does not work, we could schedule a video meeting try try things out live. |
Yep, we tried those already. I guess you will be most efficient with a VC :) |
Something that should be mentioned: the way things are set up is that I have installed picongpu at the node level ("interactive session" like getNode on hemera). Submitting a job is thus only possible at the node level. Perhaps this was a mistake, but I could not get things to work otherwise. When submitting a job, it appears that the memory is limited by the memory requested for the interactive session. Strange, but I think that it is the case. Also, the error as far as I understand it is not a memory error but a "femalka: No such queue" error. VC would be great. I'm available throughout most of the day tomorrow and on Friday if that works for you. |
@danlevy100 Okay then let's do a VC tomorrow. @sbastrakov Do you want to join as well? |
I can |
14:00 Dresden time works for you? |
@danlevy100 That would be fine with me. How about you @sbastrakov ? |
@danlevy100 #!/usr/bin/env bash
#BSUB -J test
#BSUB -o test.out
#BSUB -e test.err
#BSUB -q gpu-short
#BSUB -gpu "num=1:mode=shared:j_exclusive=no"
#BSUB -R "rusage[mem=16000]"
hostname
nvidia-smi and than just submitted via |
That is fine with me as well |
bsub in fact fails with the same error. |
I could also try to get a cluster admin to join our meeting, do you think this could prove useful? |
UPDATE:
UPDATE: |
Yes, if a cluster admin could join the meeting, that would be great 👍 |
We could get PIConGPU to run, but it only worked if the task were on one the same node. echo $LSB_HOSTS | sed -e 's/ /\n/g' > machinefile.txt
mpiexec -n 16 --machinefile machinefile.txt hostname This apparently told |
Is it possible to ask the admin how to start job MPI obs on multiple nodes? I would say MPI is not compiled with support for the batch system therefore MPI is not using the information stored in |
Yes, that's the plan. It was told to us that not many run multi-node jobs there and it may require a certain MPI version to work. Which shouldn't be a problem once we know which version it is. |
Update: There is no password-less ssh into GPU nodes. This is only available on non-GPU nodes or for admins. The next test will be together with an admin to run multi-node GPU jobs in admin-mode. |
Another update: Using openmpi/2.0.1 we finally got mpi to work today. We successfully ran a "bare-bones" version of picongpu. Now we need to install the remaining modules which I will do with the help of the cluster admin next week. Here is the simple.profile file that we used:
|
@danlevy100 As promised on Monday, you can find a setup script here: Please be aware of the comments that state which lines should be copied to your I have not yet tested that script. Thus there still might be some bugs included. If any install fails, please let me know. After you installed all dependencies, you should be able to run PIConGPU as on hemera. If that is the case, I would be very happy if you could share a |
@PrometheusPi That really wonderful. Thanks!! I gave it a shot and ran into a couple of issues:
|
The linker error is saying you should compile ADIOS with
@PrometheusPi Could you please update your gist. For testing ADIOS1 is fine but I would suggest switching to ADIOS2 because there is no real support for ADIOS1 anymore and openPMD-api is also working much better with ADIOS2. |
@danlevy100 Thanks - yes I quickly changed my initial @psychocoderHPC I fixed the gist. Thanks for your look at it. Is the readthedocs documentation correct or is the order wrong or the |
@danlevy100 It might be that you have to rebuild |
Alright, it seems like everything installed fine. However running the simulation fails with an openPMD error:
I reinstalled everything with the new script, rebuilt the simulation but still no go. P.S. there's a small typo at the gist: |
@danlevy100 Sorry for the typo 😓 - I fixed the gist. I have an idea: could you please check, whether in -export LD_LIBRARY_PATH="$LIB/openPMD-api/lib:$LD_LIBRARY_PATH"
+export LD_LIBRARY_PATH="$LIB/openPMD-api/lib64:$LD_LIBRARY_PATH" |
@PrometheusPi That solved it! Seems like everything is installed and set up correctly now. But... Now there's a new error, mpi related:
When running on the dgx nodes (V100's) the error is slightly different:
In fact, this error shows up now also when running the bare-bones simulation. I have no idea what changed from the time it worked. The error also occurs when requesting only 1 GPU (that's the error above). |
That is MPI related. So could be either something changed or broke down on the cluster side. Or something in your environment has changed either by introducing more dependencies, or accidentally. To check on your side, you could try making a fresh session, load the environment we used last time during the VC and re-compile and re-run that MPI hello world mini application on CPU and GPU partition. If it's also broken now, it probably needs attention of cluster admin. If it still works, I would first suspect your environment. |
Well, that was my bad: the simulation actually ran successfully! Just extremely fast, so I didn't even look at stdout... The simulation runs fine on the Quadro RTX 6000 nodes. However that's not the case for the V100 nodes which fail due to some memory allocation issue. I have attached the stdout and stderr files for this job. The submit.start file is attached as well. While we're at it, I have also attached the output of pic-build of the FoilLCT example. It shows some warnings that I'm not familiar with when running over hemera. Maybe that is helpful in some way. EDIT: turns out the cmake warnings did not register in the file attached (pic-build | tee output.file didn't do the trick). I'll look into this later. FoilLCT.build.txt |
Regarding the crash on V100s, from the attached files I am not sure what went wrong, besides your observation that it's probably something with memory allocation. You could try investigating by enabling more debug output: rebuilding with Regarding the |
Seems like the V100 issue is inconsistent. I did get it to work a couple of times. I'm still trying to figure out what's going on. In any case, things are working nicely and quickly on the Quadro nodes! There are just some minor issues left to solve:
picbuild.stdout.txt EDIT: It's |
This exception with checkpointing is because we no longer support ADIOS1 as backend for openPMD for output in newly made simulations. We only have a legacy support for it, so that a user can still restart from an older checkpoint written with ADIOS1. So currently you need openPMD to be compiled with, and then using either ADIOS2 or HDF5 backend. So you need to install yourself or via admin one of those or both to use Regarding the png support, in case you installed it yourself, probably the profile has to be extended with lines like these, where line 55 points to your local installation. The png support is of course optional. Those |
Regarding ADIOS1 vs. 2 there is this explanation, with a TL;DR at the end. |
Ok, I see. For installing ADIOS2, I looked at https://adios2.readthedocs.io/en/latest/setting_up/setting_up.html but am unsure of which flags I should use when building, i.e., what should be the exact commands as in @PrometheusPi 's gist file from a few comments up. Don't want to mess things up which are already working... For the .tpl file, I think I can write it myself. I'll upload it here once it's working. EDIT: the only thing I don't know how to do is how to tell tbg to submit with |
Regarding installation of ADIOS2 I found out that we actually forgot to update our instructions page which now only has ADIOS1. Working on fixing it. I don't think it would break anything, as you can always hide it from openPMD API if something does not work. |
@danlevy100 Is your last submit.start file from 20 days ago the one working best and still valid? If yes, we can setup a |
Now our (dev version of) readthedocs is updated with links on installing ADIOS2 as an openPMD-API backend. |
Here it is. The latest status is: the V100 and RTX2000 nodes are not working reliably probably due to mpi issues. I don't know how to solve this and in the meantime I'm working with the RTX6000/8000 nodes. I have also added this text to the file:
|
There was a small but important mistake in the memory request in that file (24 GB instead of 48 GB). |
Since there does not seem to be any progress on this issue any more, can we just close this issue for now? We may reopen it in the future if anything changes. |
I agree. @danlevy100 if you still want to run PIConGPU on Wexac, please let us know. Will close this PR for now. |
Hi,
I got contacted by Dan Levy @danlevy100 about help with setting up PIConGPU on the Wexac cluster at Weizmann Institute of Science (
wexac-wis
).The cluster has 12 nodes of 8x V100 per node (plus some nodes with 4x V100).
The cluster uses LSF as a batch system but does not seem to use
jsrun
(maybe just usempiexec
).He got PIConGPU installed via Spack already.
This is an interactive startup command for FBPIC:
Someone please needs to finalize with him the
.tpl
template fortbg
and thepicongpu.profile
instructions for our manual.Resources:
gpu-short
,gpu-medium
andgpu-long
mem
is per node or for the whole job) or maybe use-M
cc @PrometheusPi (recently published PIConGPU sims with Dan, maybe you can finalize this?)
cc @hightower8083 (not with Weizmann anymore but might have some hints)
The text was updated successfully, but these errors were encountered: