High Performance Computing di Gentoo Linux
1.
Pendahuluan
Gentoo Linux adalah salah satu jenis dari Linux yang dapat dioptimasi dan
dikustomisasi secara otomatis untuk dijadikan apa saja. Performa tinggi,
konfigurabilitas serta komunitas pengguna dan pengembang yang sangat bagus
adalah ciri-ciri khusus dari Gentoo.
Terima kasih kepada teknologi Portage, Gentoo Linux dapat menjadi server aman,
komputer pengembangan, desktop profesional, sistem game, solusi embedded
atau... sistem Komputasi Performa Tinggi (High Performance
Computing/HPC). Karena keluwesannya yang hampir tidak terbatas, kami
menyebut Gentoo sebagai metadistribusi.
Dokumen ini menjelaskan cara menyulap sistem Gentoo menjadi sistem Komputasi
Performa Tinggi. Selangkah demi selangkah, panduan ini menjelaskan paket apa
saja yang mungkin anda perlukan dan membantu anda mengkonfigurasinya.
Dapatkan Gentoo Linux dari website http://www.gentoo.org, dan
bacalah dokumentasi yang tersedia di lokasi yang
sama untuk menginstalnya.
2.
Konfigurasi Gentoo Linux untuk Clustering
Optimisasi yang Dianjurkan
Catatan:
Kita mengacu kepada Buku Pegangan Gentoo
Linux untuk seksi ini.
|
Selama proses instalasi, anda harus menetapkan variabel USE anda di
/etc/make.conf. Kami anjurkan anda untuk menonaktifkan semua
pengaturan default (bacalah /etc/make.profile/make.defaults)
dengan menambahkan tanda minus di depannya di dalam file
make.conf. Namun, anda mungkin harus membiarkan beberapa flag
tetap aktif, seperti x86, 3dnow, gpm, mmx, nptl, nptlonly, sse, ncurses,
pam dan tcpd. Bacalah dokumentasi USE untuk mendapatkan informasi
lebih rinci.
Daftar Kode 2.1: Flag USE |
USE="-oss 3dnow -apm -arts -avi -berkdb -crypt -cups -encode -gdbm -gif gpm -gtk
-imlib -java -jpeg -kde -gnome -libg++ -libwww -mikmod mmx -motif -mpeg ncurses
-nls nptl nptlonly -oggvorbis -opengl pam -pdflib -png -python -qt3 -qt4 -qtmt
-quicktime -readline -sdl -slang -spell -ssl -svga tcpd -truetype -X -xml2 -xv
-zlib"
|
Atau:
Daftar Kode 2.2: Flag USE - versi sederhana |
USE="-* 3dnow gpm mmx ncurses pam sse tcpd"
|
Catatan:
Flag tcpd meningkatkan keamanan untuk beberapa paket seperti xinetd
|
Pada langkah ke-15 ("Instalasi kernel dan logger sistem"), untuk alasan
stabilitas, kami anjurkan anda untuk menggunakan vanilla-sources, source
kernel resmi dari http://www.kernel.org/, kecuali jika anda
memerlukan dukungan khusus seperti xfs.
Daftar Kode 2.3: Instalasi vanilla-sources |
# emerge -p syslog-ng vanilla-sources
|
Ketika anda menginstal peket-paket lain, kami anjurkan anda untuk menginstal
peket-paket berikut:
Daftar Kode 2.4: Instalasi paket-paket penting |
# emerge -p nfs-utils portmap tcpdump ssmtp iptables xinetd
|
Lapisan Komunikasi (Jaringan TCP/IP)
Cluster memerlukan sebuah lapisan komunikasi untuk menghubungkan node
slave dengan node master. Biasanya, LAN FastEthernet atau GigaEthernet dapat
digunakan karena rasio harga/performa dari keduanya sudah cukup bagus.
Kemungkinan lainnya adalah Myrinet,
QsNet atau yang lainnya.
Sebuah cluster terdiri dari dua jenis node: master dan slave. Biasanya, cluster
anda akan memiliki satu master dan beberapa slave.
Node master adalah server dari cluster. Server ini bertanggung jawab untuk
memberitahukan node slave tentang apa saja yang harus dilakukannya. Server ini
biasanya menjalankan beberapa daemon seperti dhcpd, nfs, pbs-server, dan
pbs-sched. Node master akan mengijinkan sesi interaktif untuk pengguna, dan
menerima eksekusi tugas.
Node slave menerima instruksi (mungkin melalui ssh/rsh) dari node master. Node
ini harus didedikasikan untuk memberikan hasil, dan oleh karena itu tidak boleh
menjalankan servis yang tidak diperlukan.
Sisa dari dokumen ini mengasumsikan konfigurasi sebuah cluster seperti pada
file hosts berikut. Anda harus menyiapkan file ini
(/etc/hosts) pada setiap node dengan entri untuk setiap node di
cluster.
Daftar Kode 2.5: /etc/hosts |
# Adelie Linux Research & Development Center
# /etc/hosts
127.0.0.1 localhost
192.168.1.100 master.adelie master
192.168.1.1 node01.adelie node01
192.168.1.2 node02.adelie node02
|
Untuk menyiapkan LAN cluster, edit file /etc/conf.d/net node
master.
Daftar Kode 2.6: /etc/conf.d/net |
# Global config file for net.* rc-scripts
# This is basically the ifconfig argument without the ifconfig $iface
#
iface_eth0="192.168.1.100 broadcast 192.168.1.255 netmask 255.255.255.0"
# Network Connection to the outside world using dhcp -- configure as required for you network
iface_eth1="dhcp"
|
Terakhir, siapkan daemon DHCP di node master untuk menghindari pengaturan
jaringan pada setiap node slave.
Daftar Kode 2.7: /etc/dhcp/dhcpd.conf |
# Adelie Linux Research & Development Center
# /etc/dhcp/dhcpd.conf
log-facility local7;
ddns-update-style none;
use-host-decl-names on;
subnet 192.168.1.0 netmask 255.255.255.0 {
option domain-name "adelie";
range 192.168.1.10 192.168.1.99;
option routers 192.168.1.100;
host node01.adelie {
# MAC address of network card on node 01
hardware ethernet 00:07:e9:0f:e2:d4;
fixed-address 192.168.1.1;
}
host node02.adelie {
# MAC address of network card on node 02
hardware ethernet 00:07:e9:0f:e2:6b;
fixed-address 192.168.1.2;
}
}
|
NFS/NIS
Network File System (NFS) dikembangkan untuk mengijinkan komputer untuk
me-mount partisi harddisk di komputer lain seakan-akan partisi tersebut berada
di harddisk lokal. Dengan ini, kita bisa mendapatkan pembagian file yang cepat
di dalam jaringan.
Ada beberapa sistem lain yang menyediakan kegunaan yang hampir sama dengan NFS
yang dapat digunakan di dalam lingkungan cluster. Andrew File System dari IBM, yang baru-baru
ini di-open-source-kan, menyediakan mekanisme pembagian file dengan
beberapa fitur keamanan dan performa tambahan. Coda File System masih dalam
pengembangan, tetapi dirancang untuk bekerja baik dengan klien yang terputus
hubungannya. Beberapa fitur dari filesystem Andrew dan Coda dikabarkan akan
diikutsertakan pada versi selanjutnya dari NFS
(Versi 4). Kelebihan dari NFS untuk saat ini adalah, filesystem ini sudah
matang, menjadi standar, mudah dipahami, dan mendapatkan dukungan yang sangat
baik dari berbagai platform.
Daftar Kode 2.8: Ebuild untuk dukungan NFS |
# emerge -p nfs-utils portmap
# emerge nfs-utils portmap
|
Konfigurasikan lalu instal sebuah kernel untuk mendukung NFS versi 3 pada
semua node.
Daftar Kode 2.9: Konfigurasi kernel yang dibutuhkan untuk NFS |
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_NFSD_V3=y
CONFIG_LOCKD_V4=y
|
Pada node master, edit file /etc/hosts.allow agar mengijinkan
koneksi dari node slave. Jika LAN cluster anda berada di 192.168.1.0/24, maka
file hosts.allow anda akan terlihat seperti ini:
Daftar Kode 2.10: hosts.allow |
portmap:192.168.1.0/255.255.255.0
|
Edit file /etc/exports di node master agar mengekspor struktur
direktori yang digunakan (/home sangat baik untuk tujuan ini).
Daftar Kode 2.11: /etc/exports |
/home/ *(rw)
|
Tambahkan nfs ke runlevel default node master:
Daftar Kode 2.12: Menambahkan NFS ke runlevel default master |
# rc-update add nfs default
|
Untuk me-mount filesystem nfs dari master, anda juga harus mengkonfigurasi file
/etc/fstab node slave. Tambahkan sebuah baris seperti ini:
Daftar Kode 2.13: /etc/fstab |
master:/home/ /home nfs rw,exec,noauto,nouser,async 0 0
|
Anda juga harus mengatur node slave anda untuk me-mount filsystem nfs dengan
mengetikkan perintah berikut:
Daftar Kode 2.14: Menambahkan nfsmount ke runlevel default |
# rc-update add nfsmount default
|
RSH/SSH
SSH adalah sebuah protokol yang digunakan untuk login secara aman ke komputer
jauh dan layanan jaringan lainnya di dalam jaringan yang tidak aman. OpenSSH
menggunakan kriptografi kunci publik untuk menyediakan otorisasi aman.
Pembuatan kunci publik, yang dibagikan kepada seluruh sistem lain, dan kunci
pribadi yang disimpan di sistem lokal harus dilakukan dahulu untuk
mengkonfigurasi OpenSSH di cluster.
Untuk penggunaan transparent cluster, anda dapat menggunakan kunci
publik/pribadi. Proses ini terdiri dari dua langkah:
- Pembuatan kunci publik dan kunci pribadi
- Penyalinan kunci publik ke node slave
Untuk otentikasi berbasis user, buatlah lalu salin dengan cara seperti ini:
Daftar Kode 2.15: Otentikasi kunci SSH |
# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): /root/.ssh/id_dsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
f1:45:15:40:fd:3c:2d:f7:9f:ea:55:df:76:2f:a4:1f root@master
# scp /root/.ssh/id_dsa.pub node01:/root/.ssh/authorized_keys
root@master's password:
id_dsa.pub 100% 234 2.0MB/s 00:00
# scp /root/.ssh/id_dsa.pub node02:/root/.ssh/authorized_keys
root@master's password:
id_dsa.pub 100% 234 2.0MB/s 00:00
|
Catatan:
Kunci publik harus menggunakan passphrase kosong. RSA diperlukan untuk
otentikasi berbasis host.
|
Untuk otentikasi berbasis host, anda juga harus mengedit
/etc/ssh/shosts.equiv.
Daftar Kode 2.16: /etc/ssh/shosts.equiv |
node01.adelie
node02.adelie
master.adelie
|
Dan melakukan beberapa perubahan pada file /etc/ssh/sshd_config:
Daftar Kode 2.17: Konfigurasi sshd |
# $OpenBSD: sshd_config,v 1.42 2001/09/20 20:57:51 mouring Exp $
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# This is the sshd server system-wide configuration file. See sshd(8)
# for more information.
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
|
Jika aplikasi anda memerlukan komunikasi RSH, anda harus menginstal
net-misc/netkit-rsh dan sys-apps/xinetd.
Daftar Kode 2.18: Instalasi aplikasi yang diperlukan |
# emerge -p xinetd
# emerge xinetd
# emerge -p netkit-rsh
# emerge netkit-rsh
|
Kemudian atur daemon rsh dengan mengedit file /etc/xinet.d/rsh.
Daftar Kode 2.19: rsh |
# Adelie Linux Research & Development Center
# /etc/xinetd.d/rsh
service shell
{
socket_type = stream
protocol = tcp
wait = no
user = root
group = tty
server = /usr/sbin/in.rshd
log_type = FILE /var/log/rsh
log_on_success = PID HOST USERID EXIT DURATION
log_on_failure = USERID ATTEMPT
disable = no
}
|
Edit /etc/hosts.allow agar mengijinkan koneksi rsh:
Daftar Kode 2.20: hosts.allow |
# Adelie Linux Research & Development Center
# /etc/hosts.allow
in.rshd:192.168.1.0/255.255.255.0
|
Atau, anda boleh saja mempercayai LAN cluster anda:
Daftar Kode 2.21: hosts.allow |
# Adelie Linux Research & Development Center
# /etc/hosts.allow
ALL:192.168.1.0/255.255.255.0
|
Terakhir, atur otentikasi host dari /etc/hosts.equiv.
Daftar Kode 2.22: hosts.equiv |
# Adelie Linux Research & Development Center
# /etc/hosts.equiv
master
node01
node02
|
Selanjutnya, tambahkan xinetd ke runlevel default:
Daftar Kode 2.23: Menambahkan xinetd ke runlevel default |
# rc-update add xinetd default
|
NTP
Network Time Protocol (NTP) digunakan untuk menyamakan waktu klien atau server
dengan server lain atau sumber referensi waktu lainnya, seperti radio atau
penerima satelit atau modem. Protokol ini menyediakan ketepatan yang biasanya
berkisar dalam milisecond di LAN dan sampai beberapa puluh milisecond di WAN,
relatif terhadap Coordinated Universal Time (UTC) melalui penerima Global
Positioning Service (GPS), sebagai contoh. Konfigurasi NTP standar biasanya
menggunakan banyak server untuk mendapatkan tingkat akurasi tertinggi.
Pilih server NTP terdekat dari Public NTP Time
Servers, lalu konfigurasikan file /etc/conf.d/ntp dan
/etc/ntp.conf di node master.
Daftar Kode 2.24: /etc/conf.d/ntp master |
# /etc/conf.d/ntpd
# NOTES:
# - NTPDATE variables below are used if you wish to set your
# clock when you start the ntp init.d script
# - make sure that the NTPDATE_CMD will close by itself ...
# the init.d script will not attempt to kill/stop it
# - ntpd will be used to maintain synchronization with a time
# server regardless of what NTPDATE is set to
# - read each of the comments above each of the variable
# Comment this out if you dont want the init script to warn
# about not having ntpdate setup
NTPDATE_WARN="n"
# Command to run to set the clock initially
# Most people should just uncomment this line ...
# however, if you know what you're doing, and you
# want to use ntpd to set the clock, change this to 'ntpd'
NTPDATE_CMD="ntpdate"
# Options to pass to the above command
# Most people should just uncomment this variable and
# change 'someserver' to a valid hostname which you
# can acquire from the URL's below
NTPDATE_OPTS="-b ntp1.cmc.ec.gc.ca"
##
# A list of available servers is available here:
# http://www.eecis.udel.edu/~mills/ntp/servers.html
# Please follow the rules of engagement and use a
# Stratum 2 server (unless you qualify for Stratum 1)
##
# Options to pass to the ntpd process that will *always* be run
# Most people should not uncomment this line ...
# however, if you know what you're doing, feel free to tweak
#NTPD_OPTS=""
|
Edit file /etc/ntp.conf di master untuk mengatur sumber waktu
eksternal:
Daftar Kode 2.25: ntp.conf master |
# Adelie Linux Research & Development Center
# /etc/ntp.conf
# Synchronization source #1
server ntp1.cmc.ec.gc.ca
restrict ntp1.cmc.ec.gc.ca
# Synchronization source #2
server ntp2.cmc.ec.gc.ca
restrict ntp2.cmc.ec.gc.ca
stratum 10
driftfile /etc/ntp.drift.server
logfile /var/log/ntp
broadcast 192.168.1.255
restrict default kod
restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0
|
Dan pada semua node slave, jadikan master sebagai sumber waktu.
Daftar Kode 2.26: /etc/conf.d/ntp slave |
# /etc/conf.d/ntpd
NTPDATE_WARN="n"
NTPDATE_CMD="ntpdate"
NTPDATE_OPTS="-b master"
|
Daftar Kode 2.27: ntp.conf slave |
# Adelie Linux Research & Development Center
# /etc/ntp.conf
# Synchronization source #1
server master
restrict master
stratum 11
driftfile /etc/ntp.drift.server
logfile /var/log/ntp
restrict default kod
restrict 127.0.0.1
|
Kemudian tambahkan ntpd ke runlevel default pada semua node:
Daftar Kode 2.28: Menambahkan ntpd ke runlevel default |
# rc-update add ntpd default
|
Catatan:
NTP tidak akan menyamakan jam lokal jika perbedaan waktu antara sumber dan jam
lokal terlalu jauh.
|
IPTABLES
Untuk menyiapkan firewall di cluster, anda memerlukan iptables.
Daftar Kode 2.29: Instalasi iptables |
# emerge -p iptables
# emerge iptables
|
Konfigurasi kernel:
Daftar Kode 2.30: Konfigurasi kernel IPtables |
CONFIG_NETFILTER=y
CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_LOG=y
|
Dan aturan-aturan yang diperlukan untuk firewall ini adalah:
Daftar Kode 2.31: Aturan firewall |
# Adelie Linux Research & Development Center
# /var/lib/iptables/rule-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j LOG
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
COMMIT
|
Kemudian tambahkan iptables ke runlevel default pada semua node:
Daftar Kode 2.32: Menambahkan iptables ke runlevel default |
# rc-update add iptables default
|
3.
Tool HPC
OpenPBS
Portable Batch System (PBS) adalah sebuah sistem manajemen batch
queueing dan workload yang awalnya dikembangkan untuk NASA. Sistem
ini bekerja pada lingkungan jaringan UNIX multi-platform, termasuk cluster
heterogen, superkomputer, dan sistem paralel besar. Pengembangan PBS dilakukan
oleh Altair Grid Technologies.
Daftar Kode 3.1: Instalasi openpbs |
# emerge -p openpbs
|
Catatan:
Ebuild OpenPBS untuk saat ini tidak menetapkan perizinan yang benar pada
direktori-direktori var yang digunakan oleh OpenPBS
|
Sebelum mulai menggunakan OpenPBS, kita harus melakukan beberapa konfigurasi.
File-file yang harus anda edit adalah:
- /etc/pbs_environment
- /var/spool/PBS/server_name
- /var/spool/PBS/server_priv/nodes
- /var/spool/PBS/mom_priv/config
- /var/spool/PBS/sched_priv/sched_config
Berikut ini adalah contoh sched_config:
Daftar Kode 3.2: /var/spool/PBS/sched_priv/sched_config |
#
# Create queues and set their attributes.
#
#
# Create and define queue upto4nodes
#
create queue upto4nodes
set queue upto4nodes queue_type = Execution
set queue upto4nodes Priority = 100
set queue upto4nodes resources_max.nodect = 4
set queue upto4nodes resources_min.nodect = 1
set queue upto4nodes enabled = True
set queue upto4nodes started = True
#
# Create and define queue default
#
create queue default
set queue default queue_type = Route
set queue default route_destinations = upto4nodes
set queue default enabled = True
set queue default started = True
#
# Set server attributes.
#
set server scheduling = True
set server acl_host_enable = True
set server default_queue = default
set server log_events = 511
set server mail_from = adm
set server query_other_jobs = True
set server resources_default.neednodes = 1
set server resources_default.nodect = 1
set server resources_default.nodes = 1
set server scheduler_iteration = 60
|
Untuk memberikan tugas kepada OpenPBS, kita gunakan perintah qsub dengan
beberapa opsi. Pada contoh berikut ini, opsi -l dapat anda gunakan untuk
menentukan resource yang anda perlukan, -j untuk mengalihkan
keluaran standar dan error, serta -m untuk mengirimkan email kepada user
pada awal (b) atau akhir (e) tugas, atau ketiga tugas dibatalkan (a).
Daftar Kode 3.3: Memberikan tugas |
# qsub -l nodes=2 -j oe -m abe myscript
|
Normalnya, tugas yang diberikan kepada OpenPBS berbentuk skrip. Terkadang, anda
mungkin ingin mencoba sebuah tugas secara manual. Untuk mendapatkan shell
interaktif dari OpenPBS, gunakan parameter -I.
Daftar Kode 3.4: Meminta shell intenraktif |
# qsub -I
|
Untuk memeriksa status tugas, gunakan perintah qstat:
Daftar Kode 3.5: Memeriksa status tugas |
# qstat
Job id Name User Time Use S Queue
------ ---- ---- -------- - -----
2.geist STDIN adelie 0 R upto1nodes
|
MPICH
Penyampaian pesan adalah sebuah paradigma yang digunakan secara luas pada
beberapa kelas tertentu dari komputer paralel, terutama yang menggunakan memori
terdistribusi. MPICH tersedia bebas, implementasi portabel dari MPI, yang
merupakan standar untuk pustaka penyampaian pesan.
Ebuild mpich yang disediakan oleh Adelie Linux menerima dua flag USE:
doc dan crypt. doc akan menyebabkan instalasi dokumentasi,
sedangkan crypt akan mengkonfigurasi MPICH untuk menggunakan ssh,
bukan rsh.
Daftar Kode 3.6: Instalasi aplikasi mpich |
# emerge -p mpich
# emerge mpich
|
Anda mungkin harus mengekspor direktori kerja mpich ke semua node slave di
/etc/exports:
Daftar Kode 3.7: /etc/exports |
/home *(rw)
|
Kebanyakan massively parallel processors (MPPs) menyediakan sebuah cara
untuk memulai sebuah program dengan jumlah prosesor yang diminta; mpirun
akan menggunakan perintah yang sesuai jika memungkinkan. Sebaliknya, cluster
workstation mengharuskan setiap proses yang dikerjakan secara paralel untuk
dimulai satu-persatu, walaupun begitu, program pembantu proses ini sudah
tersedia. Karena cluster workstation belum diatur sebagai sebuah MPP,
diperlukan informasi tambahan untuk menggunakannya. mpich harus diinstal dengan
sebuah daftar yang berisi semua komputer yang yang ikut berpatisipasi di file
machines.LINUX di direktori /usr/share/mpich/. File
ini digunakan oleh mpirun untuk memilih prosesor yang akan digunakan
untuk menjalankan tugas.
Edit file ini agar sesuai dengan konfigurasi LAN cluster anda:
Daftar Kode 3.8: /usr/share/mpich/machines.LINUX |
# Change this file to contain the machines that you want to use
# to run MPI jobs on. The format is one host name per line, with either
# hostname
# or
# hostname:n
# where n is the number of processors in an SMP. The hostname should
# be the same as the result from the command "hostname"
master
node01
node02
# node03
# node04
# ...
|
Gunakan skrip tstmachines di /usr/sbin/ untuk memastikan
bahwa anda dapat menggunakan semua komputer yang telah anda daftarkan. Skrip
ini menjalankan rsh dan pendaftaran direktori; ini akan memeriksa apakah
anda sudah memiliki akses ke node dan program pada direktori tersebut dapat
dilihat dari node jauh. Jika ditemukan masalah, maka akan ditampilkan. Masalah
yang ditampilkan ini harus diatasi dahulu sebelum proses dilanjutkan.
Satu-satunya argumen untuk tstmachines adalah nama dari arsitektur; ini
adalah nama yang sama dengan ekstensi pada file daftar komputer. Misalnya,
contoh berikut ini akan menguji apakah program yang ada di direktori saat ini
dapat dieksekusi oleh semua komputer yang terdaftar di dalam file LINUX.
Daftar Kode 3.9: Pengujian |
# /usr/local/mpich/sbin/tstmachines LINUX
|
Catatan:
Program ini tidak mengeluarkan output; jika anda ingin melihat apa yang sedang
terjadi, gunakan opsi -v :
|
Daftar Kode 3.10: Pengujian dengan melihat output |
# /usr/local/mpich/sbin/tstmachines -v LINUX
|
Output perintah ini mungkin akan seperti berikut:
Daftar Kode 3.11: Output dari perintah di atas |
Trying true on host1.uoffoo.edu ...
Trying true on host2.uoffoo.edu ...
Trying ls on host1.uoffoo.edu ...
Trying ls on host2.uoffoo.edu ...
Trying user program on host1.uoffoo.edu ...
Trying user program on host2.uoffoo.edu ...
|
Jika tstmachines menemukan masalah, anda akan diberitahukan tentang
penyebab yang mungkin bersama solusinya. Secara singkat, berikut ini adalah
tiga pengujian yang dilakukan:
-
Dapatkah proses dijalankan pada komputer jauh? tstmachines
mencoba untuk menjalankan perintah shell pada setiap komputer yang
terdaftar di file dengan menggunakan perintah shell jauh
-
Apakah direktori kerja saat ini tersedia pada semua komputer?
Pengujian ini mencoba untuk meng-ls sebuah file yang diciptakan oleh
tstmachines dengan menjalankan ls dengan perintah shell jauh
-
Dapatkah program pengguna dijalankan pada sistem jauh? Pengujian ini
memeriksa apakah semua pustaka dan komponen lain telah terinstal dengan
benar di semua komputer
Dan pengujian untuk setiap alat pengembangan yang diperlukan:
Daftar Kode 3.12: Pengujian alat pengembangan |
# cd ~
# cp /usr/share/mpich/examples1/hello++.c ~
# make hello++
# mpirun -machinefile /usr/share/mpich/machines.LINUX -np 1 hello++
|
Untuk informasi lebih lanjut tentang MPICH, bacalah dokumentasi di http://www-unix.mcs.anl.gov/mpi/mpich/docs/mpichman-chp4/mpichman-chp4.htm.
LAM
(Segera!)
OMNI
(Segera!)
4.
Bibliografi
Dokumen asli diterbitkan di website Adelie Linux R&D Centre, dan
ditulis ulang di sini dengan izin dari penulis dan Cyberlogic's Adelie Linux R&D
Centre.
-
http://www.gentoo.org, Gentoo Foundation, Inc.
-
http://www.adelielinux.com,
Adelie Linux Research and Development Centre
-
http://nfs.sourceforge.net,
Linux NFS Project
-
http://www-unix.mcs.anl.gov/mpi/mpich/,
Mathematics and Computer Science Division, Argonne National Laboratory
-
http://ntp.org
-
http://www.eecis.udel.edu/~mills/,
David L. Mills, University of Delaware
-
http://www.ietf.org/html.charters/secsh-charter.html,
Secure Shell Working Group, IETF, Internet Society
-
http://www.linuxsecurity.com/,
Guardian Digital
-
http://www.openpbs.org/,
Altair Grid Technologies, LLC.
|