GNU/Linux >> Belajar Linux >  >> Linux

Membangun sistem HPC berbasis Linux di Raspberry Pi dengan Ansible

Dalam artikel saya sebelumnya untuk Opensource.com, saya memperkenalkan proyek OpenHPC, yang bertujuan untuk mempercepat inovasi dalam komputasi kinerja tinggi (HPC). Artikel ini melangkah lebih jauh dengan menggunakan kemampuan OpenHPC untuk membangun sistem HPC kecil. Untuk menyebutnya sistem HPC mungkin terdengar lebih besar dari itu, jadi mungkin lebih baik untuk mengatakan ini adalah sistem yang didasarkan pada Resep Bangunan Cluster yang diterbitkan oleh proyek OpenHPC.

Cluster yang dihasilkan terdiri dari dua sistem Raspberry Pi 3 yang bertindak sebagai node komputasi dan satu mesin virtual yang bertindak sebagai node master:

Node master saya menjalankan CentOS di x86_64 dan node komputasi saya menjalankan CentOS yang sedikit dimodifikasi di aarch64.

Beginilah tampilan pengaturannya di kehidupan nyata:

Untuk menyiapkan sistem saya seperti sistem HPC, saya mengikuti beberapa langkah dari panduan pemasangan Resep Bangunan Cluster OpenHPC untuk CentOS 7.4/aarch64 + Warewulf + Slurm (PDF). Resep ini mencakup instruksi penyediaan menggunakan Warewulf; karena saya menginstal tiga sistem secara manual, saya melewatkan bagian Warewulf dan membuat playbook Ansible untuk langkah-langkah yang saya ambil.

Wadah Linux

  • Apa itu container Linux?
  • Pengantar terminologi wadah
  • Unduh:Containers Primer
  • Operator Kubernetes:Mengotomatiskan platform orkestrasi container
  • eBook:Pola Kubernetes untuk mendesain aplikasi cloud-native
  • Apa itu Kubernetes?

Setelah cluster saya disiapkan oleh playbook Ansible, saya bisa mulai mengirimkan pekerjaan ke manajer sumber daya saya. Manajer sumber daya, Slurm dalam kasus saya, adalah contoh dalam cluster yang memutuskan di mana dan kapan pekerjaan saya dijalankan. Salah satu kemungkinan untuk memulai pekerjaan sederhana di cluster adalah:

[ohpc@centos01 ~]$ srun hostname
calvin

Jika saya membutuhkan lebih banyak sumber daya, saya dapat memberi tahu Slurm bahwa saya ingin menjalankan perintah saya pada delapan CPU:

[ohpc@centos01 ~]$ srun -n 8 hostname
hobbes
hobbes
hobbes
hobbes
calvin
calvin
calvin
calvin

Pada contoh pertama, Slurm menjalankan perintah yang ditentukan (hostname ) pada satu CPU, dan pada contoh kedua Slurm menjalankan perintah pada delapan CPU. Salah satu node komputasi saya bernama calvin dan yang lainnya bernama hobbes; yang dapat dilihat pada output dari perintah di atas. Setiap node komputasi adalah Raspberry Pi 3 dengan empat inti CPU.

Cara lain untuk mengirimkan pekerjaan ke cluster saya adalah dengan perintah sbatch , yang dapat digunakan untuk mengeksekusi skrip dengan output yang ditulis ke file alih-alih terminal saya.

[ohpc@centos01 ~]$ cat script1.sh
#!/bin/sh
date
hostname
sleep 10
date
[ohpc@centos01 ~]$ sbatch script1.sh
Submitted batch job 101

Ini akan membuat file keluaran bernama slurm-101.out dengan isi sebagai berikut:

Mon 11 Dec 16:42:31 UTC 2017
calvin
Mon 11 Dec 16:42:41 UTC 2017

Untuk mendemonstrasikan fungsionalitas dasar manajer sumber daya, alat baris perintah sederhana dan serial cocok—tetapi agak membosankan setelah melakukan semua pekerjaan untuk menyiapkan sistem mirip HPC.

Aplikasi yang lebih menarik adalah menjalankan pekerjaan paralel Open MPI pada semua CPU yang tersedia di cluster. Saya menggunakan aplikasi berbasis Game of Life, yang digunakan dalam video berjudul "Menjalankan Game of Life di berbagai arsitektur dengan Red Hat Enterprise Linux." Selain implementasi Game of Life berbasis MPI yang sebelumnya digunakan, versi yang sekarang berjalan di cluster saya mewarnai sel untuk setiap host yang terlibat secara berbeda. Skrip berikut memulai aplikasi secara interaktif dengan output grafis:

$ cat life.mpi
#!/bin/bash

module load gnu6 openmpi3

if [[ "$SLURM_PROCID" != "0" ]]; then
    exit
fi

mpirun ./mpi_life -a -p -b

Saya memulai pekerjaan dengan perintah berikut, yang memberi tahu Slurm untuk mengalokasikan delapan CPU untuk pekerjaan itu:

$ srun -n 8 --x11 life.mpi

Untuk tujuan demonstrasi, pekerjaan memiliki antarmuka grafis yang menunjukkan hasil perhitungan saat ini:

Posisi sel darah merah dihitung pada salah satu node komputasi, dan sel hijau dihitung pada node komputasi lainnya. Saya juga dapat memberi tahu program Game of Life untuk mewarnai sel untuk setiap CPU yang digunakan (ada empat per node komputasi) secara berbeda, yang mengarah ke output berikut:

Berkat resep penginstalan dan paket perangkat lunak yang disediakan oleh OpenHPC, saya dapat menyiapkan dua node komputasi dan node master dalam konfigurasi tipe HPC. Saya dapat mengirimkan pekerjaan ke manajer sumber daya saya, dan saya dapat menggunakan perangkat lunak yang disediakan oleh OpenHPC untuk memulai aplikasi MPI menggunakan semua CPU Raspberry Pis saya.

Untuk mempelajari lebih lanjut tentang menggunakan OpenHPC untuk membangun cluster Raspberry Pi, harap hadiri pembicaraan Adrian Reber di DevConf.cz 2018, 26-28 Januari, di Brno, Republik Ceko, dan di CentOS Dojo 2018, pada 2 Februari, di Brussel.


Linux
  1. Siapkan cluster Kubernetes dengan Rancher

  2. Menyiapkan server FTP dengan vsFTPd di Raspberry Pi

  3. Bisakah Saya Memperbarui Sistem Dengan Live Cd?

  1. Cara menggunakan Ansible untuk mengatur pemantauan sistem dengan Prometheus

  2. Memperbarui gairah saya di tempat kerja dengan Ansible

  3. Membangun Awan Pajak

  1. Cara mengonfigurasi pengaturan jaringan dengan peran sistem yang memungkinkan

  2. Memaksa perubahan kata sandi sistem Linux dengan perintah chage

  3. Perbaiki citra sistem dengan DISM