Skip to content

Commit fcc1d9d

Browse files
committed
docs: update simpleipynb readme
1 parent 8b4b136 commit fcc1d9d

1 file changed

Lines changed: 163 additions & 40 deletions

File tree

  • examples/science/af3-slurm/examples/simple_ipynb_launcher

examples/science/af3-slurm/examples/simple_ipynb_launcher/README.md

Lines changed: 163 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -11,70 +11,193 @@ Please note that the launcher needs 2 specific setup steps:
1111
## Usage Guide
1212
For usage of the Ipynb Launcher consult the [Step-by-Step Instructions](./Ipynb.md)
1313

14-
## Known Issues
15-
You may encounter the following problems while using the notebook.
14+
## Known Issues & How to Fix Them
15+
You may encounter the following problems while using the notebook. Each issue includes specific symptoms, causes, and actionable resolutions.
1616

1717
### Warning during dependency installation
1818

19-
**Description**:
20-
You may encounter the following warning during dependency installation:
19+
#### Symptom
20+
During Python dependency installation, you see a warning like:
2121

2222
```text
23-
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
23+
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. ...
2424
google-cloud-bigtable 1.7.3 requires grpc-google-iam-v1<0.13dev,>=0.12.3, but you have grpc-google-iam-v1 0.14.2 which is incompatible
2525
```
2626

27-
**Resolution**: This warning can be **safely ignored**.
27+
#### Cause
28+
Pip detects a version mismatch between `grpc-google-iam-v1` and `google-cloud-bigtable`.
2829

29-
The version mismatch does not impact the functionality required by this project. The `google-cloud-bigtable` package is not used in any critical code path, and no issues have been observed during execution.
30+
#### Resolution
31+
**Ignore This Warning**. This package `google-cloud-bigtable` is not critical to the notebook’s core functionality. There is no known runtime impact or errors caused by this mismatch.
3032

3133
### Resource Unavailability (Out of Capacity)
3234

33-
**Description**:
34-
Your job is queued but not executed because GCP can't provision the required compute nodes. This is often due to a temporary lack of available resources in the chosen region or zone.
35+
#### Symptom
36+
Your Slurm job is queued but not running for an unusually long time.
3537

36-
**Resolution**:
37-
- Check the Slurm **Controller Node** Log:
38-
Log on to the controller machine for your cluster to see detailed error messages like
39-
`"GCP Error: Zone does not currently have sufficient capacity for resources"`.
40-
- **Wait and Re-check**:
41-
For temporary resource shortages, wait **5–10 minutes** and then re-run the `get_job_state` cell in your Jupyter notebook. Resources might become available and allow your job to proceed.
38+
#### Cause
39+
Google Cloud Platform (GCP) is unable to provision the requested compute resources due to temporary regional or zone capacity shortages.
40+
41+
#### Resolution
42+
43+
1. **Check the Slurm Controller Node Logs**:
44+
- Take a look at the **VM log of the Slurm controller node**.
45+
- Look for error messages related to resource availability. In cases of insufficient capacity, you may see a message like:
46+
47+
```text
48+
GCP Error: Zone does not currently have sufficient capacity for resources
49+
```
50+
51+
2. **Wait and Retry**:
52+
- This issue is often **temporary**.
53+
- Wait **5–10 minutes**, then re-run the `get_job_state` cell in your notebook to check if the job has started.
54+
55+
3. **Consider Changing Region or Zone (If Possible)**:
56+
- If the issue persists, consider reconfiguring your cluster to use a different **GCP region or zone** with more available capacity.
57+
58+
4. **Scale Down Other Jobs**:
59+
- If you're running many concurrent jobs, free up resources by canceling or pausing non-critical workloads.
60+
61+
5. **Contact Your Cloud Admin (If Applicable)**:
62+
- If you're working in a managed environment, consult your GCP or cluster administrator for assistance with quotas or reserved capacity.
4263
4364
### Node Creation In Progress
4465
45-
**Description**:
46-
After submitting your job, the cluster may take several minutes to provision and initialize new compute nodes. During this time, your job might temporarily show a status like `NODE_FAIL` if the nodes are not yet fully ready or registered.
66+
#### Symptom
67+
Job status shows error state such as `NODE_FAIL` shortly after submission from the notebook, especially on first run or after cluster scale-down.
68+
69+
#### Cause
70+
Slurm is waiting for new compute nodes to finish provisioning and become available.
71+
72+
#### Resolution
73+
1. **Verify the Issue**:
74+
- Check the **VM log of the Slurm controller node** to review provisioning-related messages.
75+
- Look for indicators that nodes are still being created or initialized.
4776
48-
**Resolution**:
49-
- Check the Slurm **Controller Node** Logs for detailed status updates.
50-
- **Wait 5–10 minutes**, then recheck your job status to see if the nodes have become available and the job is progressing.
77+
2. **Wait for Node Readiness**:
78+
- Allow **5–10 minutes** for the compute nodes to finish provisioning and register with the cluster.
79+
- After waiting, check your job status using:
80+
- The `squeue` command on the controller node, or
81+
- The `get_job_state` cell in your notebook.
5182
5283
### Input File Format Error
5384
54-
**Description**:
55-
Your job might fail immediately if the input file format is incorrect or if the file is corrupted.
85+
#### Symptom
86+
Your job fails immediately or throws input parsing errors.
87+
88+
#### Cause
89+
The input file may be invalid due to one of the following reasons:
90+
- It is in an **unsupported format**
91+
- It is **corrupted**
92+
- It is **missing required fields**
93+
94+
#### Resolution
5695
57-
**Resolution**:
58-
- Review the **Job Logs** to identify issues related to the input file. Logs are located at:
59-
- `/home/af3ipynb/datapipeline_result/<input_file_name>/<timestamp>/slurm_logs/job_<job_id>/*.txt` for **data pipeline** process
60-
- `/home/af3ipynb/inference_result/<input_file_name>/<timestamp>/slurm_logs/job_<job_id>/*.txt` for **inference** process.
61-
62-
Each directory contains:
63-
- `err.txt` – captures detailed **STDERR** output.
64-
- `out.txt` – captures **STDOUT** output.
96+
1. **Check the Job Logs** for specific error messages on the Slurm controller node:
6597
66-
- Ensure that the input file:
67-
- Conforms to the expected format. Currently supported formats include alphafoldserver and alphafold3.
68-
- Is not corrupted.
98+
- **Data Pipeline Log Folder**:
6999
70-
For detailed input file requirements, please refer to [Alphafold Input Documentation](https://github.com/google-deepmind/alphafold3/blob/main/docs/input.md#alphafold-server-json-compatibility).
100+
```text
101+
/home/af3ipynb/datapipeline_result/<input_file>/<timestamp>/slurm_logs/job_<job_id>/
102+
```
103+
104+
- **Inference Log Folder**:
105+
106+
```text
107+
/home/af3ipynb/inference_result/<input_file>/<timestamp>/slurm_logs/job_<job_id>/
108+
```
109+
110+
Each log folder contains:
111+
- `err.txt`: captures **stderr** (standard error)
112+
- `out.txt`: captures **stdout** (standard output)
113+
114+
2. **Validate the Input File**:
115+
116+
Ensure the input format matches one of the supported types:
117+
- `alphafoldserver`
118+
- `alphafold3`
119+
120+
Refer to the [Alphafold Input Requirements](https://github.com/google-deepmind/alphafold3/blob/main/docs/input.md#alphafold-server-json-compatibility) for complete format specifications.
121+
122+
3. **Fix and Resubmit**:
123+
- Correct any formatting issues or regenerate the input file.
124+
- Re-upload the corrected file.
125+
- Resubmit your job.
71126
72127
### Out of Memory (OOM) Issue
73128
74-
**Description**:
75-
Your job may start but fail during execution because it requires more memory than the allocated node can provide. This can occur in both the **datapipeline** and **inference** stages.
129+
#### Symptom
130+
Your job starts but fails during execution with **Out of Memory (OOM)** errors.
131+
132+
#### Cause
133+
The job requires **more memory** than is available on the assigned compute node(s). This can happen during either the **data pipeline** or **inference** stages.
134+
135+
#### Resolution
136+
137+
1. **Check Job Logs on the Slurm Controller Node for OOM Errors**:
138+
139+
- Look in the following files for memory-related error messages:
140+
141+
- **Data Pipeline**:
142+
143+
```text
144+
/home/af3ipynb/datapipeline_result/<input_file>/<timestamp>/slurm_logs/job_<job_id>/
145+
```
146+
147+
- **Inference**:
148+
149+
```text
150+
/home/af3ipynb/inference_result/<input_file>/<timestamp>/slurm_logs/job_<job_id>/
151+
```
152+
153+
Each log folder contains:
154+
- `err.txt`: captures **stderr** (standard error)
155+
- `out.txt`: captures **stdout** (standard output)
156+
157+
- Common error messages include:
158+
159+
```text
160+
Out of Memory (OOM)
161+
```
162+
163+
or
164+
165+
```text
166+
RuntimeError: CUDA out of memory
167+
Killed: 9
168+
MemoryError
169+
```
170+
171+
2. **Reduce Memory Usage**:
172+
173+
- Simplify the input or reduce the input size (e.g., shorter protein sequence length).
174+
175+
- Enable the following setting to reduce GPU memory usage:
176+
- `inference_enable_unified_memory`:
177+
This allows the system to offload memory to CPU RAM when GPU memory is insufficient. It can help prevent OOM errors during inference. Set the value in the `af3-slurm-deployment.yaml` to `true` to enable:
178+
179+
```json
180+
"inference_enable_unified_memory": true
181+
```
182+
183+
3. **Request More Memory**:
184+
185+
- Modify your job submission script or cluster configuration to request nodes with larger memory.
186+
187+
- For example, in the `af3-slurm-deployment.yaml` file, if the `inference_g2_partition` memory value is currently set to `46`, you can increase it to `50` to request more memory:
188+
189+
```yaml
190+
inference_g2_partition:
191+
memory: 50
192+
```
193+
194+
> [!WARNING]
195+
> Check the maximum memory capacity available for the node type before assigning a new value to avoid misconfiguration.
196+
197+
- Alternatively, you can specify memory directly in your Slurm job script:
198+
199+
```bash
200+
#SBATCH --mem=128G
201+
```
76202
77-
**Resolution**:
78-
- Check the **Job Logs** for OOM errors or memory-related failures.
79-
- Modify your code or input data to reduce memory usage.
80-
- Consider requesting **larger node sizes** with higher memory capacity.
203+
- You may also consider requesting more powerful machine types depending on your platform’s options.

0 commit comments

Comments
 (0)