MpichCluster

Revision 1 as of 2007-07-05 16:34:28

Clear message

برپا سازی کلاستر MPICH2 در اوبونتو ۷.۰۴

تهیه کننده: [:OmidAlemi:امید عالمی]

omid.alemi@gmail.com

این راهنما برای برپایی یک کلاستر ساده در اوبونتو ۷.۰۴ است. درواقع این راهنما راه اندازی یک کلاستر را در ساده ترین حالت بشما آموزش می دهد.

در اینجا ما ۴ گره داریم که روی هر کدام اوبونتو نصب است. نام های آن ها ub2, ub1, ub0 و ub3 است.

۱. تعریف اسامی گره ها در etc/hosts/

فایل etc/hosts/ خود را به صورت زیر ویرایش می کنیم: en

127.0.0.1     localhost
192.168.133.100 ub0
192.168.133.101 ub1
192.168.133.102 ub2
192.168.133.103 ub3

fa

دقت کنید که محتوات فایل فوق به صورت زیر نباشد:

en

127.0.0.1     localhost
127.0.1.1     ub0
192.168.133.100 ub0
192.168.133.101 ub1
192.168.133.102 ub2
192.168.133.103 ub3

fa

۲. نصب NFS

برای نصب سرور NFS دستور زیر را در خط فرمان اجرا می کنیم:

en

omid@ub0:~$ sudo apt-get install nfs-kernel-server

fa

۳. به اشتراک گذاری پوشه اصلی

پوشه ای را در تمامی گره ها ایجاد می کنیم. برنامه ها و داده های ما در این پوشه قرار خواهند گرفت: en

omid@ub0:~$ sudo mkdir /mirror

fa

سپس آن را در گره اصلی توسط NFS برای گره های دیگر به اشتراک می گذاریم: en

omid@ub0:~$ sudo echo  /mirror *(rw,sync) >> /etc/exports

fa

دقت کنید که برنامه ها و دیگر داده های ما فقط در mirror/ گره اصلی ذخیره میشوند و گره های دیگر توسط گره اصلی به آنها دسترسی دارند.

۴. ماونت کردن mirror/ در گره های دیگر

en

omid@ub1:~$sudo mount ub0:/mirror /mirror
omid@ub2:~$sudo mount ub0:/mirror /mirror
omid@ub3:~$sudo mount ub0:/mirror /mirror

fa

بهتر است که fstab را تنظیم کنیم تا این کار به طور خودکار در هربار راه اندازی سیستم انجام شود.

۵. تعریف کاربر مورد نظر برای اجرای برنامه های mpi

کاربری با نام واحد برای تمامی گره ها تعریف می کنیم به طوری که پوشه خانگی آن در mirror/ باشد. دقت کنید که userid این کاربر باید در تمام گره ها یکسان باشد.

در اینجا ما آن را mpiu می نامیم!

همچنین این کاربر را مالک mirror/ می کنیم:

en

omid@ub0:~$ sudo chown mpiu /mirror

fa

۶. نصب سرور SSH

دستور زیر را برای نصب OpenSSH Server در همه گره ها اجرا می کنیم: en

omid@ub0:~$ sudo apt­-get install openssh­server

fa

۷. تنظیم SSH برای برقراری ارتباط بدون کلمه عبور بین گره ها

ابتدا با کاربر جدید وارد می شویم : en

omid@ub0:~$ su - mpiu

fa

سپس کلید DSA را برای کاربر mpiu می سازیم:

en

mpiu@ub0:~$ ssh­-keygen ­-t dsa

fa

در اینجا از شما passphrase خواسته می شود که باید آن را خالی بگذارید.

سپس کلید ساخته شده را در لیست کلیدهای مورد تایید قرار می دهیم: en

mpiu@ub0:~$ cd .ssh
mpiu@ub0:~/.ssh$ cat id_pub.dsa >> authorized_keys

fa

به دلیل اینکه پوشه خانگی کاربر ما در همه گره ها یکی است (در گره اصلی)‌ نیازی به اجرای دستورات فوق در تک تک گره ها نیست.

برای امتحان درستی عملکرد SSH دستور زیر را اجرا می کنیم: en

mpiu@ub0:~$ ssh ub1 hostname

fa

این دستور باید بدون درخواست کلمه عبور نام گره مورد نظر (ub1) را چاپ کند.

۸. نصب کامپایر GCC

بسته build-essential را نصب می کنیم en

mpiu@ub0:~$ sudo apt-get install build-essential

fa

۹. نصب دیگر کامپایلرها

برای نصب MPICH باید از قبل کامپایلرهای مورد مورد نیاز نصب شده باشند.

در این مرحله باید کامپایلرهای مورد نیاز خود مانند Intel Fortran و ... را نصب کنیم.

۱۰. نصب MPICH2

کد منبع MPICH2 را از سایت http://www-unix.mcs.anl.gov/mpi/mpich دریافت کنید.

فایل tar. را در پوشه mirror/ باز می کنیم.همچنین پوشه ای برای نصب mpich ایجاد می کنیم.

en

mpiu@ub3:/mirror$ mkidr mpich2
mpiu@ub3:/mirror$ tar xvf mpich2-­1.0.5p3.tar.gz
mpiu@ub3:/mirror$ cd mpich2­-1.0.5p3
mpiu@ub3:/mirror/mpich2­-1.0.5p3$ ./configure --­prefix=/mirror/mpich2 
mpiu@ub3:/mirror/mpich2­-1.0.5p3$ make
mpiu@ub3:/mirror/mpich2­-1.0.5p3$ sudo make install

fa

برای تنظیمات بیشتر قبل از کامپایل می توانید فایل README داخل بسته را مطاله کنید.

بعد از اجرای موفقیت آمیز دستورات فوق خطوط زیر را به فایل mirror/mpiu/.bashrc/ اضافه می کنیم:

en

export PATH=/mirror/mpich2/bin:$PATH
export PATH
LD_LIBRARY_PATH="/mirror/mpich2/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH

fa

سپس دستور زیر را در هر گره اجرا می کنیم تا برای اجرای mpdboot نیاز به تعریف مسیر mpd نداشته باشیم:

en

mpiu@ub0:~$ sudo echo /mirror/mpich2/bin >> /etc/environment

fa

برای بررسی صحت نصب دستورات زیر را اجرا می کنیم: en

mpiu@ub0:~$  which mpd
mpiu@ub0:~$  which mpiexec
mpiu@ub0:~$  which mpirun

fa

۱۱. برپاسازی MPD

فایل mpd.hosts را در پوشه خانه mpiu با محتویات زیر ایجاد می کنیم . این فایل حاوی فهرست گره هاست. en

ub3
ub2
ub1
ub0

fa

سپس دستورات زیر را اجرا می کنیم: en

mpiu@ub0:~$ echo secretword=something   >> ~/.mpd.conf
mpiu@ub0:~$ chmod 600 .mpd.conf

fa

حالا برای آزمایش MPD دستورات زیر را اجرا می کنیم . خروجی باید نام گره فعلی باشد: en

mpiu@ub0:~$ mpd &
mpiu@ub0:~$ mpdtrace
mpiu@ub0:~$ mpdallexit

fa

بعد از اینکه همه چیز با موفقیت انجام شد mpd daemon را اجرا می کنیم:

en

mpiu@ub0:~$ mpdboot ­-np 4
mpiu@ub0:~$ mpdtrace

fa

بعد از اجرای دستور فوق باید نام تمامی گره ها در خروجی چاپ شود.

تعدادی برنامه نمونه در mpich2-1.0.5/examples قرار دارند که یکی از آن ها را اجرا می کنیم: en

mpiu@ub0:~$ mpiexec -n 4 cpi

fa


برای اطلاعات بیشتر می توانید به سایت زیر سری بزنید: en

http://www-unix.mcs.anl.gov/mpi/mpich/