MpichCluster
⇤ ← Revision 1 as of 2007-07-05 16:34:28
7712
Comment:
|
7580
|
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:امید عالمی]
این راهنما برای برپایی یک کلاستر ساده در اوبونتو ۷.۰۴ است. درواقع این راهنما راه اندازی یک کلاستر را در ساده ترین حالت بشما آموزش می دهد.
در اینجا ما ۴ گره داریم که روی هر کدام اوبونتو نصب است. نام های آن ها 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
دقت کنید که محتوات فایل فوق به صورت زیر نباشد:
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 دستور زیر را در خط فرمان اجرا می کنیم:
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/ در گره های دیگر
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/ می کنیم:
omid@ub0:~$ sudo chown mpiu /mirror
۶. نصب سرور SSH
دستور زیر را برای نصب OpenSSH Server در همه گره ها اجرا می کنیم: en
omid@ub0:~$ sudo apt-get install opensshserver
۷. تنظیم SSH برای برقراری ارتباط بدون کلمه عبور بین گره ها
ابتدا با کاربر جدید وارد می شویم : en
omid@ub0:~$ su - mpiu
سپس کلید DSA را برای کاربر mpiu می سازیم:
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 ایجاد می کنیم.
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/ اضافه می کنیم:
export PATH=/mirror/mpich2/bin:$PATH export PATH LD_LIBRARY_PATH="/mirror/mpich2/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH
سپس دستور زیر را در هر گره اجرا می کنیم تا برای اجرای mpdboot نیاز به تعریف مسیر mpd نداشته باشیم:
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 را اجرا می کنیم:
mpiu@ub0:~$ mpdboot -np 4 mpiu@ub0:~$ mpdtrace
بعد از اجرای دستور فوق باید نام تمامی گره ها در خروجی چاپ شود.
تعدادی برنامه نمونه در mpich2-1.0.5/examples قرار دارند که یکی از آن ها را اجرا می کنیم: en
mpiu@ub0:~$ mpiexec -n 4 cpi
برای اطلاعات بیشتر می توانید به سایت زیر سری بزنید: en
MpichCluster (last edited 2008-08-06 16:31:26 by localhost)