MpichCluster

Differences between revisions 1 and 2
Revision 1 as of 2007-07-05 16:34:28
Size: 7712
Editor: 85
Comment:
Revision 2 as of 2007-07-05 16:37:30
Size: 7580
Editor: 85
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
[[fa]]
Line 43: Line 43:
[[fa]]
Line 53: Line 53:
[[fa]]
Line 61: Line 61:
[[fa]]
Line 69: Line 69:
[[fa]]
Line 83: Line 83:
[[fa]]
Line 99: Line 99:
[[fa]]
Line 109: Line 109:
[[fa]]
Line 118: Line 118:
[[fa]]
Line 127: Line 127:
[[fa]]
Line 138: Line 138:
[[fa]]
Line 148: Line 148:
[[fa]]
Line 159: Line 159:
[[fa]]
Line 181: Line 181:
[[fa]]
Line 195: Line 195:
[[fa]]
Line 204: Line 204:
[[fa]]
Line 215: Line 215:
[[fa]]
Line 228: Line 228:
[[fa]]
Line 237: Line 237:
[[fa]]
Line 247: Line 247:
[[fa]]
Line 258: Line 258:
[[fa]]
Line 268: Line 268:
[[fa]]

برپا سازی کلاستر 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

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

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

۲. نصب NFS

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

en

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

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

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

omid@ub0:~$ sudo mkdir /mirror

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

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

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

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

en

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

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

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

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

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

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

en

omid@ub0:~$ sudo chown mpiu /mirror

۶. نصب سرور SSH

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

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

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

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

omid@ub0:~$ su - mpiu

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

en

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

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

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

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

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

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

mpiu@ub0:~$ ssh ub1 hostname

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

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

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

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

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

برای نصب 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

برای تنظیمات بیشتر قبل از کامپایل می توانید فایل 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

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

en

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

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

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

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

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

ub3
ub2
ub1
ub0

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

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

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

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

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

en

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

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

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

mpiu@ub0:~$ mpiexec -n 4 cpi


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

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

MpichCluster (last edited 2008-08-06 16:31:26 by localhost)