Skip to content

Commit 086a308

Browse files
ambroselingblobcode
authored andcommitted
docs for qb usage
1 parent a31904a commit 086a308

1 file changed

Lines changed: 194 additions & 0 deletions

File tree

pre_compute_platform.md

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# Quick guide — how to SSH into the Tenstorrent “quiet box” (shared access)
2+
3+
Below is a practical, copy-pasteable guide you can share with your team so people can connect to the Tenstorrent quiet box through the GCP SSH jump proxy. It covers key generation, how to share your public key, the SSH `config` entries (exactly what you asked to include), connection steps, the temporary manual reservation process via Discord, rules about containers, troubleshooting, and good safety practices.
4+
5+
---
6+
7+
# 1) What we’re doing (short)
8+
9+
We expose the quiet box only behind an SSH jump host on GCP. Users get access by giving us their SSH **public key**; access is time-limited until a compute reservation system exists. People must work inside their own container while using the quiet box. Reservations are handled manually through a Discord channel for now — see section 4.
10+
11+
---
12+
13+
# 2) How to create and send your SSH public key
14+
15+
1. Generate an SSH key pair locally (if you don’t already have one). Recommended: ed25519 (modern, compact, secure).
16+
17+
```bash
18+
# create a new key (press enter to accept default file and optionally add a passphrase)
19+
ssh-keygen -t ed25519 -C "your.email@domain.com"
20+
```
21+
22+
2. Print your public key and copy it:
23+
24+
```bash
25+
cat ~/.ssh/id_ed25519.pub
26+
```
27+
28+
3. Send **only** the public key string (the `.pub` contents) to the admins which are Ambrose Ling and Kenny Cui (e.g., paste into the Discord message or via whatever secure channel the team uses). Example public key looks like:
29+
30+
```
31+
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... user@host
32+
```
33+
34+
(Do **not** send your private key — file `~/.ssh/id_ed25519`.)
35+
36+
If you already use `~/.ssh/id_rsa` / other keys, you can send whichever public key you prefer — ed25519 is preferred.
37+
38+
---
39+
40+
# 3) Add this to your `~/.ssh/config`
41+
42+
Put the following in your SSH config file (`~/.ssh/config`) **exactly** as shown (or append if entries already exist):
43+
44+
```
45+
Host mist-jump
46+
HostName 34.170.88.115
47+
User utorontomist
48+
49+
Host mist
50+
Hostname localhost
51+
User utmist-tt
52+
Port 2025
53+
ProxyJump mist-jump
54+
```
55+
56+
Notes:
57+
58+
* After the admins add your public key to the jump host / target server, you’ll connect with:
59+
60+
```bash
61+
ssh mist
62+
```
63+
64+
Login in with server password: `welovett2025!`
65+
66+
* The `ProxyJump` causes your SSH client to first connect to `mist-jump` (the GCP host), then forward into the quiet box on port `2025` as user `utmist-tt`.
67+
68+
---
69+
70+
# 4) Manual reservation (Discord workflow)
71+
72+
Because there is no automated reservation system yet, we use a Discord channel to manage access. Suggested workflow to keep things fair and safe:
73+
74+
1. **Channel name**: `#quietbox-reservations` (or similar).
75+
2. **How to claim time**: Post a short message like:
76+
77+
```
78+
Claim: @your-name — Project: <short name> — From: 2025-10-29 14:00 EDT — To: 2025-10-29 16:00 EDT
79+
```
80+
81+
3. **Required fields**: who, project, start & end times (use local timezone, include timezone), and container image or name you’ll use. Until there is clear demand of machine usage times we will stick to this. If we see that multiple projects need to use the same machine
82+
4. **Admins confirm**: An admin reacts/acknowledges the claim (e.g., ✅). Until a claim is acknowledged, you should not start work.
83+
5. **During your slot**: If you finish early, post an “ended” message so others can update the slot. If you need to extend, post in the channel and wait for confirmation.
84+
6. **Enforcement**: If someone is using the box outside their claimed time, ping the channel owner/admin to resolve.
85+
86+
Suggested message template to claim:
87+
88+
```
89+
Claiming quietbox:
90+
- User: @ambrose
91+
- Project: example-ml
92+
- Start: 2025-10-29 14:00 EDT
93+
- End: 2025-10-29 16:00 EDT
94+
- Container Name:
95+
```
96+
97+
---
98+
99+
# 5) Rules while using the quiet box (must-follow)
100+
101+
* **Work only inside your container.** Do not run experiments on the host OS. Use Docker / Podman / the approved container runtime.
102+
* **No background or persistent processes** outside your container. Kill any long-running jobs when your slot ends.
103+
* **Follow agreed resource limits.** If admins set GPU/CPU limits, stay within them.
104+
* **Clean up**: remove temporary large files from shared storage after your run, or move them to a location designated for your project.
105+
* **Be respectful**: If another user needs time urgently, coordinate in the Discord channel.
106+
* **Security**: never share private keys or credentials in Discord or public chat.
107+
108+
---
109+
110+
# 6) Example container usage patterns
111+
112+
Generic Docker example (adjust to your image and options):
113+
114+
```bash
115+
# pull image
116+
docker pull ghcr.io/tenstorrent/tt-metal/tt-metalium/ubuntu-22.04-dev-amd64:latest
117+
118+
# run container with GPU access and mount a workspace
119+
docker run -it \
120+
--name your_name:project_name\
121+
-v /dev/hugepages-1G:/dev/hugepages-1G \
122+
--device /dev/tenstorrent \
123+
-v $(pwd):/home/utmist-tt/UTMIST \
124+
-v /mnt:/mnt \
125+
ghcr.io/tenstorrent/tt-metal/tt-metalium/ubuntu-22.04-dev-amd64:latest \
126+
/bin/bash
127+
```
128+
129+
Inside the container you run your jobs. `--rm` ensures the container is removed when you exit.
130+
131+
If your setup uses a different runtime (Podman, singularity), follow the project's standard container instructions.
132+
133+
---
134+
135+
# 7) Connection checklist & verification
136+
137+
Before connecting:
138+
139+
* You’ve sent your public key to admins and they confirmed it was installed.
140+
* Your `~/.ssh/config` contains the `mist-jump` and `mist` entries shown above.
141+
142+
To connect:
143+
144+
```bash
145+
ssh mist
146+
```
147+
148+
If you want verbose logs (helpful for troubleshooting):
149+
150+
```bash
151+
ssh -vvv mist
152+
```
153+
154+
Quick verification steps:
155+
156+
* `ssh -G mist` prints the resolved config for debugging.
157+
* Confirm you land inside the correct user (prompt or `whoami`).
158+
* Once connected, check you’re inside a container (e.g., `cat /proc/1/cgroup` or ask admins about the container launch process).
159+
160+
---
161+
162+
# 8) Common troubleshooting
163+
164+
* **Permission denied (publickey)**
165+
166+
* Ensure the admin actually installed your `~/.pub` key on the target account.
167+
* Confirm you’re using the right private key (`ssh -i ~/.ssh/id_ed25519 mist` to force it).
168+
* Check file permissions: `~/.ssh` should be `700`, private key `600`.
169+
* **ProxyJump failing / connection to jump host refused**
170+
171+
* Confirm `mist-jump` HostName IP is reachable: `ssh -vvv mist-jump`.
172+
* Ensure your local firewall or corporate network allows outbound SSH (port 22).
173+
* **Port 2025 connection refused**
174+
175+
* That implies the service on the jump host isn’t forwarding correctly yet; ask admins to confirm the tunnel on GCP and the quiet box service are up.
176+
* **Agent forwarding issues**
177+
178+
* If you rely on agent forwarding, make sure you started `ssh-agent` and added keys with `ssh-add`.
179+
* **If you get unexpected host key warnings**
180+
181+
* Verify fingerprints with an admin before accepting. Do **not** blindly accept host key changes.
182+
183+
Use `ssh -vvv mist` and share the logs with admins if you need help.
184+
185+
---
186+
187+
# 9) Session end & cleanup checklist
188+
189+
Before you finish:
190+
191+
* Stop any running jobs inside your container (`Ctrl+C` or `pkill` inside container).
192+
* `exit` the container and ensure the container is stopped/removed if required.
193+
* Log out of the SSH session (`exit` or `logout`).
194+
* Post in Discord that your slot ended, or update the reservation message.

0 commit comments

Comments
 (0)