Halaman ini membantu engineer machine learning (ML) dan administrator platform mendiagnosis dan menyelesaikan masalah terkait workload Pathways di Google Cloud. Gunakan panduan ini untuk memeriksa log komponen, memverifikasi kesiapan cluster dan slice, memantau metrik transfer Megascale XLA (MXLA), dan memperbaiki error runtime umum. Di setiap bagian, pilih tab GKE atau Cluster Director untuk lingkungan Anda.
Sebelum memulai
-
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
gcloud
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initREST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Sebelum memulai
GKE
Selesaikan prasyarat berikut sebelum melanjutkan:
- Siapkan Cluster Toolkit.
- Instal alat Kubernetes.
- Menginstal Google Cloud CLI.
- Aktifkan Kubernetes Engine API.
- Buat cluster Google Kubernetes Engine (GKE) dengan Pathways.
- Untuk melihat log dan metrik di konsol Google Cloud , pastikan Anda memiliki peran Identity and Access Management (IAM) Logs Viewer (
roles/logging.viewer) dan Monitoring Viewer (roles/monitoring.viewer) di project Anda.
Cluster Director
Selesaikan prasyarat berikut sebelum melanjutkan:
- Buat cluster Cluster Director dan siapkan lingkungan Pathways.
- Pastikan Anda memiliki akses SSH ke node login cluster.
Melihat log
GKE
Anda dapat melihat log untuk workload Pathways secara langsung menggunakan perintah gcluster job logs (teruskan --main-only=false untuk menyertakan log pod worker):
gcluster job logs WORKLOAD_NAME \ --cluster=CLUSTER \ --project=PROJECT_ID \ --location=LOCATION \ --main-only=false
Ganti kode berikut:
WORKLOAD_NAME: nama workload Anda saat menggunakan Cluster Toolkit, atau nama JobSet saat Anda menggunakankubectl.CLUSTER: nama cluster GKE Anda.PROJECT_ID:Google Cloud project ID Anda.LOCATION: region atau zona tempat Anda membuat cluster GKE.
Untuk mencantumkan semua pod untuk workload Anda menggunakan kubectl, filter berdasarkan label nama JobSet:
kubectl get pods \ -l jobset.sigs.k8s.io/jobset-name=WORKLOAD_NAME
Untuk memeriksa status workload atau mencantumkan tugas yang gagal, gunakan perintah gcluster job list:
gcluster job list --status Failed \ --cluster=CLUSTER \ --project=PROJECT_ID \ --location=LOCATION
Atau, di Logs Explorer Cloud Logging, jalankan kueri berikut yang disesuaikan untuk project, lokasi, cluster, dan workload Anda:
resource.type="k8s_container" resource.labels.project_id="PROJECT_ID" resource.labels.location="LOCATION" resource.labels.cluster_name="CLUSTER" resource.labels.namespace_name="default" resource.labels.pod_name:"WORKLOAD_NAME"
Kueri ini cocok dengan beberapa container Kubernetes Pathways dengan nama seperti pathways-rm, pathways-proxy, pathways-worker, dan workload-container. Untuk menentukan
container mana yang menyebabkan masalah, tambahkan filter nama container seperti
resource.labels.container_name:"CONTAINER_NAME",
dengan CONTAINER_NAME adalah
nama container.
Cluster Director
Skrip Pathways menulis log ke sistem file bersama:
- Tugas layanan Pathways menulis
pathways-service-SERVICE_JOB_ID.outdanpathways-service-SERVICE_JOB_ID.errdi direktori tempat Anda menjalankansbatch, misalnya,~/pathways. - Resource manager Pathways, server proxy IFRT, dan TPU worker menulis ke
~/pathways/service_SERVICE_JOB_ID/logs, termasukrm.log,proxy.log, serta satu fileslice-*.outdanslice-*.errper tugas worker. - Contoh workload MaxText menulis lognya ke
maxtext-llama31-JOB_ID.err.
Ganti kode berikut:
SERVICE_JOB_ID: ID pekerjaan Slurm dari tugas layanan Pathways, yang dicetak olehsbatch start_pathways.sh.JOB_ID: ID pekerjaan Slurm dari tugas MaxText, yang dicetak olehsbatch run_maxtext.sh.
Di node login, periksa status tugas Pathways dan temukan ID tugasnya:
squeue -u ${USER}
Memantau komponen dan metrik Pathways
Bagian berikut berlaku untuk Pathways di GKE.
Pemantauan kesehatan
Anda dapat memantau kondisi berbagai komponen Pathways dengan mencari entri di log container.
Container pathways-proxy siap melayani permintaan koneksi baru saat
menulis entri log berikut. Untuk melihat log, jalankan perintah berikut:
kubectl logs HEAD_POD_NAME --container pathways-proxy
Ganti HEAD_POD_NAME dengan
nama pod head Pathways.
Output-nya mencakup baris yang mirip dengan berikut ini:
I1101 04:51:41.967764 1 proxy_server.cc:125] IFRT proxy server started with status OK
Container pathways-rm siap melayani permintaan koneksi baru saat menulis entri log berikut:
kubectl logs HEAD_POD_NAME --container pathways-rm
Output-nya mencakup baris yang mirip dengan berikut ini:
I1101 04:50:41.967764 1 server_lib.cc:1473] Pathways Server serving on POD_IP:29001
POD_IP adalah alamat IP pod, yang dapat berubah saat pod dimulai ulang atau dijadwalkan ulang.
Untuk memastikan bahwa semua slice TPU sudah siap, periksa log container pathways-rm
untuk Pathways Slices Now Ready:
kubectl logs HEAD_POD_NAME --container pathways-rm
Misalnya, entri log berikut menunjukkan bahwa 2 dari 2 slice sudah siap:
I1101 04:52:41.967764 1 multi_job_allocator.cc:1063] *** 2/2 Pathways Slices Now Ready ***
Klien Pathways dapat terhubung ke server proxy IFRT segera setelah server proxy siap, meskipun tidak semua slice siap. Tugas Anda akan berfungsi dengan slice virtual hingga slice TPU siap. Slice virtual memungkinkan kode Anda berjalan saat TPU tidak tersedia.
Untuk memverifikasi bahwa container pathways-worker sudah siap, periksa log-nya:
kubectl logs WORKER_POD_NAME --container pathways-worker
Ganti WORKER_POD_NAME dengan
nama pod worker Pathways.
Jika worker sudah siap, output-nya akan menyertakan baris yang mirip dengan berikut ini:
I1101 04:50:41.967764 1 server_lib.cc:1473] Pathways Server serving on POD_IP:29005
POD_IP adalah alamat IP pod, yang dapat berubah saat pod dimulai ulang atau dijadwalkan ulang.
Pengumpulan metrik
Pathways dapat menulis metrik sistem tingkat rendah ke Cloud Monitoring untuk proses debug. Metrik ini mencakup:
- Latensi transfer jaringan pusat data (DCN)
- Latensi kolektif
- Latensi transfer host-ke-perangkat
- Latensi transfer perangkat ke host
Anda dapat menemukan metrik di dasbor Monitoring pada projectGoogle Cloud tempat cluster GKE berjalan.
Untuk memantau metrik ini di Metrics Explorer, ikuti langkah-langkah berikut:
- Di konsol Google Cloud , buka halaman Metrics Explorer.
- Di kolom Select a metric, filter menurut nama metrik.
- Untuk memfilter menurut nama workload dan rentang waktu, klik Add filter, lalu
filter menurut
pod_name. - Untuk Aggregation, pilih jenis agregasi berdasarkan metrik dan workload yang Anda pantau.
Latensi transfer DCN
Metrik Megascale XLA (MXLA) ini mengukur distribusi kumulatif latensi transfer jaringan untuk traffic multislice. Pengukuran latensi dimulai
saat sistem mengeluarkan permintaan untuk mentransfer data melalui DCN dan berakhir saat sistem
menerima konfirmasi bahwa transfer data telah selesai. Untuk memantau metrik ini, filter menurut nama metrik dcn_transfer_latencies.
Latensi kolektif
Metrik MXLA ini mengukur distribusi kumulatif latensi kolektif menyeluruh untuk traffic multislice. Pengukuran latensi dimulai saat sistem
mengeluarkan permintaan untuk operasi kolektif dan berakhir saat sistem menerima
konfirmasi bahwa transfer data telah selesai. Untuk memantau metrik ini,
filter menurut nama metrik collective_end_to_end_latencies.
Latensi transfer host-ke-perangkat
Metrik MXLA ini mengukur distribusi kumulatif latensi transfer host-ke-perangkat untuk traffic multislice. Pengukuran latensi dimulai saat sistem
mengeluarkan permintaan untuk mentransfer data dari host ke perangkat TPU dan berakhir saat sistem
menerima konfirmasi bahwa transfer data telah selesai. Untuk memantau metrik ini, filter menurut nama metrik host_to_device_transfer_latencies.
Latensi transfer perangkat ke host
Metrik MXLA ini mengukur distribusi kumulatif latensi transfer perangkat ke host untuk traffic multislice. Pengukuran latensi dimulai saat sistem
mengeluarkan permintaan untuk mentransfer data dari perangkat TPU ke host dan berakhir saat sistem
menerima konfirmasi bahwa transfer data telah selesai. Untuk memantau metrik ini, filter menurut nama metrik device_to_host_transfer_latencies.
Men-debug error umum
GKE
Tidak dapat melakukan hashing pada peringatan konfigurasi akselerator
Pesan berikut hanyalah peringatan dan tidak memengaruhi performa kode JAX Anda:
INFO:jax._src.cache_key:get (_hash_accelerator_config): unable to hash accelerator config, falling back to hashing devices + platform: UNIMPLEMENTED: GetTopologyForDevices is not supported for the IFRT proxy client. (type <class 'jaxlib.xla_extension.XlaRuntimeError'>)
Izin logging.logEntries.create ditolak pada resource
Jika Anda melihat error berikut, pastikan akun layanan Compute Engine yang digunakan oleh Vertex AI Workbench memiliki izin untuk menulis entri log ke Logging:
INFO:absl:Created 'ArrayHandler' with primary_host=0, replica-id=0
WARNING:absl:pathwaysutils: Detected Pathways-on-Cloud backend. Applying changes.
Failed to submit 1 logs.
Traceback (most recent call last):
File "/opt/conda/lib/python3.10/site-packages/google/api_core/grpc_helpers.py", line 65, in error_remapped_callable
return callable_(**args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/grpc/_channel.py", line 1181, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/opt/conda/lib/python3.10/site-packages/google/api_core/grpc_helpers.py", line 1006, in _end_unary_response_blocking
raise _InactiveRpcError(state) # pytype: disable-not-instantiable
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.PERMISSION_DENIED
details = "Permission 'logging.logEntries.create' denied on resource (or it may not exist)."
debug_error_string = "UNKNOWN:Error received from peer ipv4:216.239.34.174:443 {created_time:"2024-10-03T20:30:44.820425276+00.00", grpc_status:7, grpc_message:"Permission \'logging.logEntries.create\' denied on resource (or it may not exist)."}"
>
Untuk memperbaiki masalah ini, berikan peran
Logs Writer
(roles/logging.logWriter) ke akun layanan Compute Engine.
Tidak dapat terhubung ke server proxy IFRT
Saat perintah JAX pertama Anda yang mengirim perintah IFRT ke cluster Pathways
mencoba berjalan, perintah tersebut mungkin berhenti merespons selama sekitar satu menit, lalu
menampilkan RuntimeError yang mirip dengan berikut ini:
RuntimeError: Unable to initialize backend 'proxy': UNAVAILABLE: Unable to establish connection to ifrt_proxy server, please check provided address example-workload-proxy-0-0.example-workload.default.svc.example-cluster-domain.:38676'; detailed error: DNS resolution failed (set JAX_PLATFORMS='' to automatically choose an available backend)
Jika Anda melihat error ini, klien proxy IFRT Anda tidak dapat terhubung ke server proxy IFRT. Periksa hal-hal berikut:
- Pastikan Anda telah mengonfigurasi jaringan Virtual Private Cloud (VPC) dengan benar.
- Pastikan aturan firewall Anda mengizinkan koneksi.
- Pastikan cluster Pathways Anda telah disediakan.
- Periksa pesan error startup di log container.
Handshake ALTS gagal atau soket ditutup saat terhubung ke server proxy IFRT
Anda mungkin melihat Alts handshake failed (TSI_INTERNAL_ERROR) atau
UNAVAILABLE: Unable to establish connection to ifrt_proxy server ... Socket
closed saat menjalankan manifes kustom tanpa kolom hostNetwork: true
di node pool Workload Identity Federation for GKE. Untuk mengatasi masalah ini,
tetapkan variabel lingkungan IFRT_PROXY_USE_INSECURE_GRPC_CREDENTIALS: "true"
pada container pathways-proxy dan container klien JAX
(kedua sisi harus cocok). Menambahkan variabel lingkungan ini akan menonaktifkan ALTS dan
menggunakan gRPC yang tidak aman, jadi gunakan hanya dalam jaringan cluster tepercaya.
Ada koneksi yang sudah ada ke cluster Pathways
Cluster Pathways dapat mempertahankan sesi hanya dengan satu klien dalam satu waktu. Jika dua notebook terpisah mencoba terhubung ke cluster Pathways yang sama, satu notebook akan terhubung dan notebook lainnya akan menampilkan error berikut:
INFO:absl:Created ArrayHandler with primary_host=0, replica_id=0
WARNING:absl:pathwaysutils: Detected Pathways-on-Cloud backend. Applying changes.
E0927 21:19:52.919607 37624 rpc_helper.cc:56] Connection to IFRT proxy server was terminated: CANCELLED: Cancelled
E0927 21:20:03.467547 37719 rpc_helper.cc:56] Connection to IFRT proxy server was terminated: CANCELLED: Cancelled
E0927 21:20:14.011645 37807 rpc_helper.cc:56] Connection to IFRT proxy server was terminated: CANCELLED: Cancelled
E0927 21:20:24.557955 37924 rpc_helper.cc:56] Connection to IFRT proxy server was terminated: CANCELLED: Cancelled
---------------------------------------------------------------------------
XlaRuntimeError Traceback (most recent call last)
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:887, in backends()
885 continue
--> 887 backend = _init_backend(platform)
888 _backends[platform] = backend
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:973, in _init_backend(platform)
972 logger.debug("Initializing backend '%s'", platform)
--> 973 backend = registration.factory()
974 # TODO: consider raising more descriptive errors directly from backend
975 # factories instead of returning None.
File /opt/conda/lib/python3.10/site-packages/pathwaysutils/proxy_backend.py:24, in register_backend_factory.<locals>.<lambda>()
21 def register_backend_factory():
22 xla_bridge.register_backend_factory(
23 "proxy",
---> 24 lambda: ifrt_proxy.get_client(
25 jax.config.read("jax_backend_target"),
26 ifrt_proxy.ClientConnectionOptions(),
27 ),
28 priority=-1,
29 )
XlaRuntimeError: UNAVAILABLE: Unable to establish connection to ifrt_proxy server, please check provided address example-workload-proxy-0-0.example-workload.default.svc.example-cluster-domain.:38676'; detailed error: Connection to IFRT proxy server was terminated: CANCELLED: Cancelled
During handling of the above exception, another exception occurred:
RuntimeError Traceback (most recent call last)
Cell In[2], line 4
1 import pathwaysutils
3 import jax
----> 4 print(jax.devices())
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:1085, in devices(backend)
1060 def devices(
1061 backend: str | xla_client.Client | None = None
1062 ) -> list[xla_client.Device]:
1063 """Returns a list of all devices for a given backend.
1064
1065 .. currentmodule:: jaxlib.xla_extension
(...)
1083 List of Device subclasses.
1084 """
-> 1085 return get_backend(backend).devices()
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:1019, in get_backend(platform)
1015 @lru_cache(maxsize=None) # don't use util.memoize because there is no X64 dependence.
1016 def get_backend(
1017 platform: None | str | xla_client.Client = None
1018 ) -> xla_client.Client:
-> 1019 return _get_backend_uncached(platform)
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:998, in _get_backend_uncached(platform)
994 return platform
996 platform = (platform or _XLA_BACKEND.value or _PLATFORM_NAME.value or None)
--> 998 bs = backends()
999 if platform is not None:
1000 platform = canonicalize_platform(platform)
File /opt/conda/lib/python3.10/site-packages/jax/_src/xla_bridge.py:903, in backends()
901 else:
902 err_msg += " (you may need to uninstall the failing plugin package, or set JAX_PLATFORMS=cpu to skip this backend.)"
--> 903 raise RuntimeError(err_msg)
905 assert _default_backend is not None
906 if not config.jax_platforms.value:
RuntimeError: Unable to initialize backend 'proxy': UNAVAILABLE: Unable to establish connection to ifrt_proxy server, please check provided address 'example-workload-proxy-0-0.example-workload.default.svc.example-cluster-domain.:38676'; detailed error: Connection to IFRT proxy server was terminated: CANCELLED: Cancelled (set JAX_PLATFORMS='' to automatically choose an available backend)
Setelah klien asli terputus, klien kedua dapat terhubung. Setelah terjadi pemutusan koneksi yang tidak terduga, Anda mungkin perlu memulai ulang cluster Pathways agar klien lain dapat terhubung.
LocalProxy.__init__() mendapatkan argumen kata kunci yang tidak diharapkan
'unbound_message'
Jika Anda melihat error berikut setelah mengimpor pathwaysutils, periksa
apakah versi Flask atau Werkzeug yang sudah tidak berlaku diinstal di
lingkungan Anda (ganti pip3 dengan pip jika diperlukan):
pip3 list --outdated
Jika Flask atau Werkzeug tercantum, upgrade paket (perhatikan bahwa upgrade dapat memengaruhi paket atau dependensi lain dalam project Anda):
pip3 install --upgrade flask Werkzeug
Error internal dari server proxy
"Internal error from proxy server during Array::IsDeleted(): UNAVAILABLE:Connection to IFRT proxy server was terminated: FAILED_PRECONDITION:
GrpcClientSession: writes no longer allowed."
Error ini menunjukkan bahwa server proxy IFRT terputus dari klien. Untuk memperbaiki masalah ini, mulai ulang klien Anda. Untuk notebook, mulai ulang kernel notebook dan jalankan ulang notebook Anda.
SIGTERM dan OOM HBM
Entri SIGTERM dalam log yang terkait dengan error RESOURCE_EXHAUSTED
mungkin menunjukkan error kehabisan memori (OOM) pada memori bandwidth tinggi (HBM). Dalam hal ini, kurangi jumlah HBM yang digunakan kode JAX Anda.
INVALID_ARGUMENT
"INVALID_ARGUMENT : Permanent error, with a last message of Lifecycle
matches_prefix cannot specify more than 50 prefixes per config.; Error while
initializing persistent cache storage Cloud Storage"
Error ini terjadi jika bucket Cloud Storage yang diteruskan ke flag --pathways-gcs-location telah mencapai batas kebijakan siklus proses maksimum (50 awalan). Untuk mengatasi masalah ini, hapus kebijakan siklus proses Cloud Storage yang tidak lagi Anda gunakan.
Error permanen
Permanent error, with a last message of The specified bucket does not exist.; Error while initializing persistent cache storage gcs
Resource manager Pathways atau worker Pathways mencetak error ini saat Anda memberikan lokasi Cloud Storage yang tidak valid ke container Pathways.
Respons error dari daemon
Error response from daemon: dockerfile parse error line 16: Unknown flag: exclude
Error ini terjadi saat Anda menggunakan Docker versi lama. Upgrade versi Docker Anda.
Klien dan server proxy IFRT gagal menyetujui
IFRT Proxy client and server failed to agree on the protocol version; supported versions: client = [1, 1], server = [3, 14]
Error ini menunjukkan bahwa Anda menggunakan MaxText versi lama. Bangun ulang image MaxText terbaru.
Cluster Director
setup_env.sh gagal dengan error Enroot mktemp
Jika setup_env.sh gagal dengan error berikut, direktori sementara Enroot tidak ada:
mktemp: failed to create directory via template '/tmp/UID/tmp/enroot...'
Untuk memperbaiki masalah ini, jalankan mkdir -p /tmp/$(id -u)/tmp, lalu jalankan skrip
lagi.
setup_env.sh tidak dapat mengambil image Pathways
Jika setup_env.sh gagal dengan Couldn't pull ..., tidak ada gambar Pathways yang diberi tag untuk JAX_VERSION yang diminta. Gunakan versi JAX yang didukung.
Cluster tidak memiliki partisi cpu
Jika sinfo tidak menampilkan partisi cpu, definisi cluster tidak memiliki nodeset CPU atau menamai partisinya secara berbeda. Skrip Pathways
mengirimkan tugas ke partisi bernama cpu. Untuk memperbaiki masalah ini, perbarui
blueprint cluster Anda untuk menentukan partisi CPU bernama cpu dan deploy ulang
cluster, atau perbarui nama partisi dalam skrip tugas Pathways agar cocok
dengan partisi CPU yang ditampilkan oleh sinfo.
Node TPU tidak muncul
Pastikan pemesanan berada di zona cluster dan memiliki VM ct6e-standard-4t yang cukup, serta staticNodeCount dan acceleratorTopology cocok.
Layanan Pathways keluar dengan Invalid partition name specified
Variabel PARTITION salah. Pilih partisi TPU dari output
sinfo.
Layanan Pathways tidak siap
Jika log layanan tetap di Waiting for at least MIN_SLICES=..., berarti tidak cukup slice yang berjalan. Kolom NODELIST(REASON) dari perintah berikut menunjukkan alasannya, misalnya, tidak ada kapasitas yang tersedia atau nilai SLICE_SHAPE yang tidak cocok dengan TPU nodeset:
squeue -u ${USER} -n pw-slice
Pengelola resource Pathways atau server proxy IFRT tidak dimulai
Jika layanan gagal dengan Timed out waiting for Pathways Resource Manager
atau Timed out waiting for Pathways IFRT Proxy Server, container Pathways
tidak dimulai. Periksa rm.log dan proxy.log di
direktori log.
Layanan Pathways berhenti secara tidak terduga
Jika layanan berhenti dengan The Pathways Resource Manager or IFRT proxy
exited, salah satunya mengalami error, dan layanan menghentikan worker-nya. Periksa
rm.log dan proxy.log di direktori log, lalu
mulai layanan lagi.
TPU node macet dalam status buruk
Untuk memulihkan node, jalankan perintah berikut di node login:
sudo scontrol update nodename=NODE \ state=power_down_force
Ganti NODE dengan nama node, seperti yang ditunjukkan oleh sinfo.
MaxText tidak dapat menemukan layanan Pathways yang berjalan
Jika MaxText gagal dengan No running Pathways service after 60 minutes, layanan tidak berjalan atau belum siap. Periksa log layanan. Untuk menunggu lebih lama, tetapkan SERVICE_WAIT_MINUTES saat Anda mengirimkan run_maxtext.sh.
MaxText gagal dengan RESOURCE_EXHAUSTED
Model tidak muat dalam memori TPU. Gunakan slice 2x4 atau 4x4, atau tetapkan
REDUCED_LAYERS=1.
Tugas MaxText tetap tertunda
Node CPU tidak memiliki 8 CPU dan memori 160 GB yang diminta run_maxtext.sh, selain 4 CPU dan memori 80 GB yang digunakan layanan Pathways. Kedua tugas tersebut cocok di node n2-highmem-32. Untuk memperbaiki masalah ini, tingkatkan kapasitas CPU dan memori (atau jumlah node) di partisi cpu, atau kurangi permintaan resource di run_maxtext.sh.
Tidak dapat terhubung ke server proxy IFRT
Jika klien berhenti merespons atau gagal dengan UNAVAILABLE, klien tidak dapat menjangkau server proxy:
- Pastikan log layanan menampilkan
READY. - Pastikan
JAX_BACKEND_TARGETcocok dengan alamat di~/pathways/cluster.env. - Jika Anda menggunakan penerusan port, pastikan tunnel SSH masih berjalan.
Jika klien berjalan di VM, pastikan VM berada di subnet cluster. Perintah berikut akan berhasil:
nc -zv PROXY_IP 29000
Ganti
PROXY_IPdengan alamat IP proxy IFRT dari log layanan.
jax.devices() mencantumkan perangkat CPU, bukan perangkat TPU
Anda menetapkan variabel lingkungan JAX_PLATFORMS dan JAX_BACKEND_TARGET
setelah mengimpor jax. Mulai ulang kernel notebook, dan tetapkan variabel sebelum Anda mengimpor jax.
Error tepat setelah terhubung ke server proxy IFRT
Versi jax atau pathwaysutils klien tidak cocok dengan server Pathways. Instal versi di ~/pathways/venv.
Komputasi gagal dengan DATA_LOSS dan PlacementDataLoss
Komputasi menggunakan perangkat pada slice yang tidak berjalan—misalnya, karena slice di-preempt. Server proxy IFRT tetap terhubung saat Slurm mengantrekan ulang slice. Periksa apakah setiap tugas worker berjalan, dan jalankan komputasi lagi setelah slice kembali:
squeue -u ${USER} -n pw-slice
Komputasi gagal setelah preemption Spot
Komputasi yang menggunakan perangkat slice yang di-preempt akan gagal. Untuk memulihkan dari preemption Spot secara otomatis, konfigurasikan pembuatan checkpoint dan penskalaan ulang slice elastis seperti yang dijelaskan dalam Pelatihan tangguh dengan Pathways.