-
Notifications
You must be signed in to change notification settings - Fork 16
Changes for el9-based cmssw versions #693
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
base: lobster-python3
Are you sure you want to change the base?
Changes from all commits
ab02a2d
5d6ac11
ca98d08
daf9696
e645fe4
6254ae5
ea3c9cf
20d2e40
1583538
0f607c8
52a8cb9
eb2129b
f7f585b
bf3b4c0
41d9fd5
720a2e1
c23022e
b10aa39
39d57a2
42e44a0
223973b
610658a
d678e6d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,7 +4,7 @@ | |
| First login to glados, and then run the following commands. | ||
| The general directory structure is: | ||
| ``` | ||
| lobster-python3 | ||
| lobster-python3-run3 | ||
| lobster | ||
| ``` | ||
| If you'd like to use a different setup, just adjust the paths accordingly. | ||
|
|
@@ -14,42 +14,41 @@ unset PYTHONPATH | |
| mkdir lobster-python3 | ||
| cd lobster-python3 | ||
|
|
||
| git clone https://github.com/NDCMS/lobster.git | ||
| git clone https://github.com/anpicci/lobster.git | ||
| cd lobster | ||
| git checkout lobster-python3 | ||
| git checkout lobster-python3-run3 | ||
|
|
||
| conda env create -f lobster_env.yaml -n lobster | ||
| conda activate lobster | ||
|
|
||
| cd .. # back to lobster-python3/ | ||
| cd .. # back to lobster-python3-run3/ | ||
|
|
||
| git clone [email protected]:dmwm/WMCore.git --branch 2.3.5 | ||
| cd WMCore | ||
| sed -i -E '/^(gfal2|htcondor|kkmysqlclient|rucio-clients|Sphinx|coverage|memory-profiler|mox3|nose|nose2|pycodestyle|pylint|pymongo)/d' requirements.txt | ||
| pip install -r requirements.txt . | ||
|
|
||
| cd ../lobster # to lobster-python3/lobster | ||
| cd ../lobster # to lobster-python3-run3/lobster | ||
| ``` | ||
|
|
||
| **Note:** The yaml file and the above command creates an environment named `lobster`, | ||
| if you'd like to change the name of the environment, change the value after the `-n` flag | ||
| e.g. `conda env create -f lobster_env.yaml -n lobster-python3` | ||
| **Note:** The yaml file and the above command create an environment named `lobster`. If you'd like to change the name of the environment, change the value after the `-n` flag, e.g., `conda env create -f lobster_env.yaml -n lobster-python3-run3` | ||
|
|
||
|
|
||
| Then, still in the cloned lobster directory, run the following command to install lobster as an editable package: | ||
| ``` | ||
| pip install -e . | ||
| ``` | ||
|
|
||
| Now that the `lobster` env is setup, in the future all you need to do is run the following: | ||
| Now that the `lobster` env is set up, in the future all you need to do is run the following: | ||
| ``` | ||
| unset PYTHONPATH | ||
| unset PERL5LIB | ||
| conda activate lobster | ||
| export PATH=/afs/crc.nd.edu/group/ccl/software/x86_64/RedHat9/cctools/7.11.1/bin:$PATH ##needed to use parrot_run when sandboxing CMSSW | ||
| ``` | ||
|
|
||
| # Running a Simple Config | ||
| In the lobster repository, there is a python script called "simple.py". This has been updated to work with `lobster-python3` and can be run in the following way: | ||
| In the lobster repository, there is a Python script called "simple.py". This has been updated to work with `lobster-python3` and can be run in the following way: | ||
|
|
||
| 1. Set up the necessary CMSSW release in the same directory as where you're running the config file (see directions below). | ||
| 2. unset the pythonpath and start the `lobster` environment | ||
|
|
@@ -68,20 +67,20 @@ After the jobs are completed, check the output. In general, lobster output is st | |
|
|
||
| # Setting up a CMSSW environment for the simple example | ||
| For the simple.py script, we're using CMSSW_10_6_26. There are two options: | ||
| 1. install CMSSW_10_6_26 inside the same directory where simple.py is located | ||
| 1. Install CMSSW_10_6_26 inside the same directory where simple.py is located | ||
| - `lobster/examples/` | ||
| - inside the examples directory run `unset PERL5LIB` and `cmsrel CMSSW_10_6_26` (NOTE: this has to be done outside of lobster conda environment) | ||
| - reminder: DO NO do cmsenv | ||
| - inside the examples directory, run `unset PERL5LIB` and `cmsrel CMSSW_10_6_26` (NOTE: this has to be done outside of lobster conda environment) | ||
| - reminder: DO NOT do cmsenv | ||
| 2. install CMSSW_10_6_26 somewhere else, and edit the path in simple.py on line 45: `release='<your-path-to-CMSSW_10_6_26>'` | ||
|
|
||
| # Possible Errors | ||
| After submitting a lobster process and starting a work_queue_factory, if there are no errors in `process.err` or `process_debug.log` but workers are never assigned to the job, try the follwing: | ||
| After submitting a lobster process and starting a work_queue_factory, if there are no errors in `process.err` or `process_debug.log` but workers are never assigned to the job, try the following: | ||
| - Kill the current work_queue_factory. | ||
| - Try running a worker directly with the following command: | ||
| - `apptainer exec --bind /cvmfs:/cvmfs --bind $CONDA_PREFIX:/conda_env /afs/crc.nd.edu/group/ccl/software/runos/images/cc7-wq-7.11.1.img /conda_env/bin/work_queue_worker -M "lobster_${USER}.*" -dall --cores 1 --disk 10000 -t 150` | ||
| - If the manual worker succeeds and not the work_queue_factory then it may indicate a bug in lobster, or your environment. Save your logs and contact the development team for help. | ||
| - If the manual worker succeeds and not the work_queue_factory, then it may indicate a bug in lobster or your environment. Save your logs and contact the development team for help. | ||
|
|
||
| # Other Troubleshooting | ||
| - Did you remember to re-new your proxy? | ||
| - Did you remember to renew your proxy? | ||
| - Unset PYTHONPATH and PERL5LIB? | ||
| - In the right conda env? Run `work_queue_factory --version` and check the output for 7.11.1. | ||
| - In the right conda env? Run `work_queue_factory --version` and check the output for 7.11.1. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,6 +17,7 @@ | |
| from lobster.core.source import TaskProvider | ||
|
|
||
| import work_queue as wq | ||
| print('\n\n\nUsing WQ version:', wq.__version__, '\n\n\n') | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree that we should keep any "mandatory" print statements to a minimum. I believe this would only ever get printed once when the user does a |
||
|
|
||
| logger = logging.getLogger('lobster.core') | ||
|
|
||
|
|
@@ -136,7 +137,7 @@ def localkill(num, frame): | |
| process = psutil.Process() | ||
| preserved = [f.name for f in args.preserve] | ||
| preserved += [os.path.realpath(os.path.abspath(f)) for f in preserved] | ||
| openfiles = [f for f in process.open_files() if f.path not in preserved] | ||
| openfiles = [f for f in process.open_files() if f.path not in preserved and "vscode" not in f.path] | ||
| openconns = process.connections() | ||
|
|
||
| for c in openconns: | ||
|
|
@@ -147,7 +148,7 @@ def localkill(num, frame): | |
| logger.error("cannot daemonize due to open files") | ||
| for f in openfiles: | ||
| logger.error("open file: {}".format(f.path)) | ||
| raise RuntimeError("open files or connections") | ||
| raise RuntimeError(f"open files or connections {f.path}") | ||
|
|
||
| with daemon.DaemonContext( | ||
| detach_process=not args.foreground, | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is
biglibused for? We did our full Run 3 production without it.