-
Notifications
You must be signed in to change notification settings - Fork 26
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
deploying IMI on a local workstation(not cluster) #294
Comments
Hi @doudouwa002 , The IMI ubuntu docker container maintains the same paths as the AWS AMI and has the software environment preloaded. The error you are running into should resolve if you have """ """ Good luck! Curious to hear if this works! -- |
Dear @laestrada , I’m so happy to receive your reply—thank you so much for your insights! However, while you mentioned a potential issue with the Since our last discussion, I’ve made some adjustments. Below is the complete content of my ---
# IMI Docker Compose File
services:
imi:
image: public.ecr.aws/w1q7j9l2/imi-ubuntu-docker-image:imi-2.0.1
volumes:
- /home/ustcpolar/Documents/imi_container/myEnv/gcclassic.rocky+gnu12.minimal.env:/home/ubuntu/integrated_methane_inversion/envs/Harvard-Cannon/gcclassic.rocky+gnu12.minimal.env # mounte the GEOS-Chem environment file
- /home/ustcpolar/Documents/imi_container/myEnv/config.yml:/home/ubuntu/integrated_methane_inversion/config.yml
- /home/ustcpolar/Documents/imi_container/imi_output:/home/ubuntu/imi_output_dir
- ~/.aws:/root/.aws
environment:
IMI_CONFIG_PATH: /home/ubuntu/integrated_methane_inversion/config.yml
GEOSChemEnv: /home/ubuntu/integrated_methane_inversion/envs/Harvard-Cannon/gcclassic.rocky+gnu12.minimal.env #added its path to the environment variable Questions:
Regarding my local 1 ## IMI configuration file
2 ## Documentation @ https://imi.readthedocs.io/en/latest/getting-started/imi-config-file.html
3
4 ## General
5 RunName: "Test_Permian_1week"
6 isAWS: false
7 UseSlurm: false #I've set the UseSlurm to false
8 SafeMode: true
9 S3Upload: false
10 ...
11 ## Custom state vector
12 StateVectorFile: "/home/ubuntu/integrated_methane_inversion/resources/statevectors/StateVector.nc"
13 ShapeFile: "/home/ubuntu/integrated_methane_inversion/resources/shapefiles/PermianBasin_Extent_201712.shp"
14 ...
15 ##------------------------------------------------------------------
16 ## Settings for running on local cluster
17 ##------------------------------------------------------------------
18
19 ## Path for IMI runs and output
20 OutputPath: "/home/ubuntu/imi_output_dir"
21
22 ## Path to GEOS-Chem input data
23 DataPath: "/home/ubuntu/ExtData"
24
25 ## Path to TROPOMI Data
26 # DataPathTROPOMI: "/n/holylfs05/LABS/jacob_lab/imi/ch4/tropomi"
27
28 ## Conda environment file
29 CondaEnv: imi_env
30 CondaFile: /home/ubuntu/.bashrc
31
32 ## GEOS-Chem environment file (with fortran compiler, netcdf libraries, etc.)
33 ## NOTE: Copy your own file in the envs/ directory within the IMI
34 GEOSChemEnv: "/home/ubuntu/integrated_methane_inversion/envs/Harvard-Cannon/gcclassic.rocky+gnu12.minimal.env"
35
36 ## Download initial restart file from AWS S3?
37 ## NOTE: Must have AWS CLI enabled #
38 RestartDownload: true #should be like this?
39
40 ## Path to initial GEOS-Chem restart file + prefix
41 ## ("YYYYMMDD_0000z.nc4" will be appended)
42 RestartFilePrefix: "/home/ubuntu/ExtData/BoundaryConditions/v2024-06/GEOSChem.BoundaryConditions."
43
44 ## Path to GEOS-Chem boundary condition files (for regional simulations)
45 ## BCversion will be appended to the end of this path. ${BCpath}/${BCversion}
46 BCpath: "/home/ubuntu/ExtData/BoundaryConditions"
47 BCversion: "v2024-06"
48
49 ## Options to download missing GEOS-Chem input data from AWS S3
50 HemcoPriorEmisDryRun: false #should be like this?
51 SpinupDryrun: false
52 ProductionDryRun: false
53 PosteriorDryRun: false
54 BCdryrun: false Further Questions:
Come back to the GEOS-Chem Environment Variable Error: After setting in compose.yml and in config.yml file, when I $ docker logs e42101868d90
* Starting MUNGE munged
...done.
* Starting slurm central management daemon slurmctld
...done.
* Starting slurm compute node daemon slurmd
...done.
Overriding config variables in /home/ubuntu/integrated_methane_inversion/config.yml with environment variables.
No config variables overridden.
=== PARSING CONFIG FILE (run_imi.sh) ===
Activating conda environment: imi_env
Loading GEOS-Chem environment: /home/ubuntu/integrated_methane_inversion/envs/Harvard-Cannon/gcclassic.rocky+gnu12.minimal.env
/home/ubuntu/integrated_methane_inversion/envs/Harvard-Cannon/gcclassic.rocky+gnu12.minimal.env: line 20: module: command not found The error suggests that the Below is the content of ###############################################################################
# gcclassic.rocky+gnu12.minimal.env
# Environment file for GCClassic + Rocky Linux + GNU Compiler Collection 12.2.0
...
module purge
...
module load gcc/12.2.0-fasrc01
module load openmpi/4.1.4-fasrc01
module load netcdf-c/4.9.2-fasrc01
...
I also noticed the following code in the ...
# variables only required by local cluster
config_required_local_cluster = [
"DataPathTROPOMI",
"GEOSChemEnv",
]
... It seems that, besides the issue with I have attached the three relevant complete files, Looking forward to your reply! Thank you very much for your patience and guidance! Best regards, |
Hi @doudouwa002, As I said in the previous message, in your config.yml, you need to set The cannon environment will not help you because that file is specific to the Harvard cluster. The GC environment is already pre loaded when the docker container starts. It seems that, besides the issue with GEOSChemEnv, I also need to consider the DataPathTROPOMI. I aim to automatically download the required satellite and meteorological data from AWS. I've already included the AWS account and credentials in the compose.yml file. Beyond this, are there any other changes or arrangements I need to make? The input data will be automatically downloaded, you actually do not need to input AWS credentials anymore, as we were able to get the data hosted by AWS publicly. |
Oh my goodness, I can’t believe I misread it! You explained it so clearly and thoroughly before! I’m so sorry for my lack of professionalism and carelessness—it must have wasted your time! I guess subconsciously, I assumed that a locally run setup couldn’t have anything to do with the cloud, and I didn’t fully understand what you meant by ‘has the software environment preloaded.’ Also, since I’m just starting out, I’ve been feeling quite anxious, which made me overcomplicate and overthink everything. My apologies again—I understand it now and will try it right away! @laestrada |
No worries, let us know if you run into more issues -- I am curious to see how it works on a local workstation! |
Name and Institution (Required)
Name: Chen Xiaodong
Institution: University of Science and Technology of China
Description of your issue or question
Hello,
I’m currently trying to deploy the IMI Docker on my local workstation. My workstation is running Ubuntu 22.04, which is a recently installed and fairly clean system. However, I’m encountering issues with the GEOS-Chem environment setup, and I have several questions about how to proceed. I’m a beginner and would greatly appreciate guidance from experts in this area! If you happen to read this and can offer advice or answer any of my questions, I would be very grateful:
1. Docker Issue
When I run
docker compose up
to start the container, I encounter the following error:I’m using the following image:
public.ecr.aws/w1q7j9l2/imi-ubuntu-docker-image:imi-2.0.1
.Here’s my
compose.yml
file:The error seems related to the GEOS-Chem environment file, which I understand I need to configure myself. However, I’m unsure how to configure it or what specifically to modify. I noticed there are four GEOS-Chem environment templates for the Harvard-Cannon cluster version, but I'm not sure which of the templates should I base my configuration on for a standalone workstation? They don’t seem suited to a standalone workstation like mine. Could you share an example template tailored for an independent workstation? Once I have the environment file, how should I integrate it? Do I simply include it in
compose.yml
like what we do with theconfig.yml
? Are there any other considerations or specific steps I should take to successfully deploy the IMI Docker on a local workstation? Or, could you give an instruction on the deploy of IMI on an independent workstation ?2. Suitability of My Workstation
Given the specifications of my workstation, do you think it’s reasonable to run IMI on it? Is it capable of handling the workload, or is it too limited to run IMI effectively?
Additionally, if I run IMI locally, will the container automatically download the required datasets (e.g., satellite data, meteorological data, boundary conditions) from AWS?
Here are my workstation specifications:
CPU:
Memory:
Storage:
A 3.6TB hard drive.
GPU:
I would be immensely grateful if anyone could provide guidance or share their experience deploying IMI on a local workstation. Thank you so much in advance!
The text was updated successfully, but these errors were encountered: