topology.yaml(5) Slurm Configuration File topology.yaml(5)

topology.yaml - فایل پیکربندی Slurm برای پلاگین‌های توپولوژی

پرونده topology.yaml یک فایل پیکربندی در قالب YAML است که چندین توپولوژی شبکه را برای بهینه‌سازی تخصیص منابع کارها در Slurm تعریف می‌کند. این فایل باید در همان دایرکتوری پرونده slurm.conf قرار داشته باشد. هر متنی پس از یک «#» در این فایل تا انتهای آن سطر به عنوان توضیح (کامنت) در نظر گرفته می‌شود.

جزئیات بیشتر در topology.conf(5) و در راهنمای توپولوژی در دسترس است: https://slurm.schedmd.com/topology.html

NOTE: سامانه Slurm ابتدا وجود topology.yaml را بررسی می‌کند. اگر این فایل وجود داشته باشد، topology.conf نادیده گرفته خواهد شد.

هر توپولوژی شامل مشخصه‌های زیر است:

نام یکتای توپولوژی که برای شناسایی آن در پیکربندی‌های پارتیشن استفاده می‌شود. این گزینه باید نخستین مشخصه باشد.
نخستین توپولوژی تعریف‌شده با cluster_default: true برای پارتیشن‌های بدون توپولوژی صریحاً مشخص‌شده و عملیات‌های سراسری کلاستر که وابسته به پارتیشن خاصی نیستند (مانند ارتباطات میان slurmctld و slurmd) استفاده خواهد شد. مقدار پیش‌فرض false است.

هر توپولوژی همچنین باید دقیقاً یکی از انواع توپولوژی زیر را تعریف کند:

این توپولوژی از پلاگین topology/block استفاده خواهد کرد. باید شامل فیلدهای اضافی باشد؛ بخش زیر را ببینید.
در صورت تنظیم روی true، این توپولوژی از پلاگین topology/flat استفاده می‌کند که در صورت مشخص نشدن TopologyPlugin یا topology.yaml پیش‌فرض است. همچنین می‌تواند روی یک فرهنگ‌لغت (dictionary) از گزینه‌ها تنظیم شود؛ بخش «تعاریف مسطح (Flat definitions)» در زیر را ببینید.
این توپولوژی از پلاگین topology/ring استفاده خواهد کرد. باید شامل فیلدهای اضافی باشد؛ بخش زیر را ببینید.
این توپولوژی از پلاگین topology/torus3d استفاده خواهد کرد. باید شامل فیلدهای اضافی باشد؛ بخش زیر را ببینید.
این توپولوژی از پلاگین topology/tree استفاده خواهد کرد. باید شامل فیلدهای اضافی باشد؛ بخش زیر را ببینید.

هر توپولوژی بلوکی شامل مشخصه‌های زیر است:

فهرستی از اندازه بلوک پایه برنامه‌ریزی‌شده، به همراه اندازه‌های بلوک سطوح بالاتری که باید اعمال شوند. مقادیر متوالی BlockSizes باید توانی از دو و بزرگ‌تر از مقادیر قبلی باشند.
فهرست بلوک‌های موجود در این توپولوژی. هر بلوک شامل مشخصه‌های زیر است:
نام یک بلوک. این نام برای Slurm داخلی و اختیاری است. هر بلوک باید نامی یکتا داشته باشد. این فیلد باید مشخص شود.
گره‌های فرزند بلوک نام‌برده‌شده.

هر توپولوژی درختی شامل مشخصه زیر است:

فهرست سوییچ‌های موجود در این توپولوژی. هر سوییچ شامل مشخصه‌های زیر است:
نام یک سوییچ. این نام برای Slurm داخلی و اختیاری است. هر سوییچ باید نامی یکتا داشته باشد. این فیلد باید مشخص شود و نباید طولانی‌تر از ۶۴ نویسه باشد.
سوییچ‌های فرزند سوییچ نام‌برده‌شده.
گره‌های فرزند سوییچ برگ نام‌برده‌شده.

هر توپولوژی حلقه‌ای شامل مشخصه زیر است:

فهرست حلقه‌های موجود در این توپولوژی. هر حلقه شامل مشخصه‌های زیر است:
نام یک حلقه. این نام برای Slurm داخلی و اختیاری است. هر حلقه باید نامی یکتا داشته باشد. این فیلد باید مشخص شود.
فهرست مرتب‌شده‌ای از گره‌های فرزند در حلقه. برای هر حلقه حداکثر ۱۶ گره را می‌توان مشخص کرد.

هر توپولوژی torus3d شامل مشخصه زیر است:

فهرستی از تعاریف تورس سه‌بعدی. هر تورس شامل مشخصه‌های زیر است:
نام تورس. این نام برای Slurm داخلی و اختیاری است. هر تورس باید نامی یکتا داشته باشد. این فیلد باید مشخص شود.
ابعاد تورس به صورت یک شیء با فیلدهای x، y و z (هر کدام یک عدد صحیح مثبت). حاصل‌ضرب x*y*z کل تعداد سلول‌های مختصاتی در تورس را مشخص می‌کند.
گره‌های فرزند تورس. گره‌ها به ترتیب اولویت x (تغییر سریع‌تر x) روی مختصات نگاشت می‌شوند. با regions مانعة‌الجمع است.
فهرستی از نواحی درون تورس که زیرمجموعه‌هایی از مختصات را به گره‌ها نگاشت می‌کنند. با nodes مانعة‌الجمع است. هر ناحیه شامل مشخصه‌های زیر است:
مختصات شروع ناحیه به صورت یک شیء با فیلدهای x، y و z.
اندازه ناحیه به صورت یک شیء با فیلدهای x، y و z. این ناحیه مختصات از anchor تا anchor + dims - 1 را در بر می‌گیرد. این ناحیه باید درون ابعاد تورس جای گیرد (بدون پیچش یا دور زدن مرزها).
گره‌هایی که باید در ناحیه قرار گیرند، که به ترتیب اولویت x درون محدوده مختصاتی ناحیه نگاشت می‌شوند.
فهرستی از اشکال جای‌گذاری مجاز برای این تورس. کارهایی که درخواست تعدادی گره منطبق با اندازه یک جای‌گذاری دارند، به صورت یک زیرمکعب پیوسته تخصیص خواهند یافت که ممکن است مرزهای تورس را دور بزند (wrap around). کارهایی که با هیچ اندازه جای‌گذاری مطابقت نداشته باشند، تخصیصی دریافت نخواهند کرد. هر جای‌گذاری شامل مشخصه‌های زیر است:
ابعاد شکل جای‌گذاری به صورت یک شیء با فیلدهای x، y و z. حاصل‌ضرب x*y*z اندازه جای‌گذاری (تعداد گره‌ها) را تعیین می‌کند.
آفست مختصات شروع اختیاری برای شبکه لنگر (anchor grid) به صورت یک شیء با فیلدهای x، y و z. کل شبکه لنگر را به اندازه آفست داده‌شده جابه‌جا می‌کند. مقدار پیش‌فرض آن {0, 0, 0} است.
فاصله‌گذاری اختیاری میان لنگرهای جای‌گذاری به صورت یک شیء با فیلدهای x، y و z. نحوه تولید موقعیت‌های لنگر در سراسر تورس را کنترل می‌کند. در صورت مشخص نشدن، مقدار پیش‌فرض آن dims مربوط به placement است.

هر توپولوژی مسطح می‌تواند شامل مشخصه زیر باشد:

در صورت تنظیم روی true، گره‌های تخصیص‌یافته به کار هنگام انتخاب گره‌های گام و چینش تسک‌ها، بر اساس حروف الفبا و بر حسب نام مرتب می‌شوند. به طور پیش‌فرض، ترتیب از اندیس جدول داخلی گره‌ها پیروی می‌کند که برای گره‌های پویای ثبت‌شده، نشان‌دهنده ترتیب ثبت است نه ترتیب الفبایی نام‌ها.

---
- topology: topo1
  cluster_default: true
  tree:
    switches:
      - switch: sw_root
        children: s[1-2]
      - switch: s1
        nodes: node[01-02]
      - switch: s2
        nodes: node[03-04]
- topology: topo2
  cluster_default: false
  block:
    block_sizes:
      - 4
      - 16
    blocks:
      - block: b1
        nodes: node[01-04]
      - block: b2
        nodes: node[05-08]
      - block: b3
        nodes: node[09-12]
      - block: b4
        nodes: node[13-16]
- topology: topo3
  cluster_default: false
  flat: true
- topology: topo3a
  cluster_default: false
  flat:
    alpha_step_rank: true
- topology: topo4
  cluster_default: false
  ring:
    rings:
      - ring: ring0
        nodes: node[01-08]
      - ring: ring1
        nodes: node[09-16]
- topology: topo5
  cluster_default: false
  torus3d:
    toruses:
      - name: pod1
        dims:
          x: 4
          y: 4
          z: 2
        nodes: node[01-32]
        placements:
          - dims:
              x: 2
              y: 2
              z: 1
          - dims:
              x: 2
              y: 2
              z: 2
          - dims:
              x: 4
              y: 4
              z: 2

Copyright (C) 2025 SchedMD LLC.

این پرونده بخشی از Slurm، یک برنامه مدیریت منابع، است. برای جزئیات بیشتر به نشانی https://slurm.schedmd.com مراجعه کنید.

سامانه Slurm یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌گونه که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده یا تغییر دهید.

سامانه Slurm با این امید که سودمند باشد توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

slurm.conf(5), topology.conf(5)

Slurm Configuration File Slurm 26.05