Muhammad al-xozazmiy nomidagi toshkent axborot texnologiyalari universiteti telekommunikatsiya texnologiyalari


Download 151.52 Kb.
bet2/3
Sana28.12.2022
Hajmi151.52 Kb.
#1015441
1   2   3
Bog'liq
4-5 Topshiriq, komp.arx

Interfeysning ishlashi[


MPI jarayonlari o'rtasidagi aloqaning asosiy mexanizmi xabarlarni uzatish va qabul qilishdir. Xabarda uzatilgan ma'lumotlar va qabul qiluvchi tomonga ularni tanlab qabul qilishga imkon beradigan ma'lumotlar mavjud:

  • yuboruvchi-xabar yuboruvchining darajasi (guruhdagi raqam);

  • qabul qiluvchi-qabul qiluvchining darajasi;

  • xususiyat-har xil turdagi xabarlarni ajratish uchun ishlatilishi mumkin;

  • kommunikator-jarayonlar guruhining kodi.

Qabul qilish va uzatish operatsiyalari bloklanishi va bloklanmasligi mumkin. Bloklanmagan operatsiyalar uchun operatsiyaning tayyorligini va bajarilishini kutish funktsiyalari aniqlanadi.
Ulanishning yana bir usuli-masofaviy jarayonning xotira maydonini o'qish va o'zgartirish imkonini beruvchi masofaviy xotiraga kirish (RMA). Mahalliy jarayon masofaviy jarayonning xotira maydonini (jarayonlar tomonidan belgilangan oynaning ichida) o'z xotirasiga va orqasiga o'tkazishi, shuningdek masofaviy jarayonga uzatiladigan ma'lumotlarni uning xotirasida mavjud bo'lgan ma'lumotlar bilan birlashtirishi mumkin (masalan, yig'ish orqali). Xotiraga masofadan kirishning barcha operatsiyalari bloklanmagan, ammo ular bajarilishidan oldin va keyin blokirovka qilingan sinxronizatsiya funktsiyalariga qo'ng'iroq qilish kerak.

Programma kodi


/ / Kerakli sarlavhalarni ulash
# include
#include
/ / MPI#include " MPI sarlavha faylini ulash
.h "
/ / oraliq hisoblash funktsiyasi
double f (double a)
{
qaytish (4.0 / (1.0+ a*a));
}
/ / dasturning asosiy funktsiyasi
int main (int argc, char **argv)
{
//o'zgaruvchilarni e'lon
qilish int bajarildi = 0, n, myid, numprocs , i;
double PI25DT = 3.141592653589793238462643;
double mypi, pi, h, sum, x;
double startwtime = 0.0, endwtime;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
// MPI MPI_INIT quyi tizimini ishga tushirish
(&argc, &argv);
// kommunikator hajmini oling MPI_COMM_WORLD
// (umumiy raqam vazifa doirasidagi jarayonlar)
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
// ichida joriy jarayon raqamini oling
// kommunikator MPI_COMM_WORLD
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Get_processor_name(processor_name,&namelen);
// umumiy fprintf hovuzidagi oqim raqamini chiqarish(stdout
, "jarayon %d of %d is on %S\n" , myid, numprocs, processor_name);
fflush(stdout);

Download 151.52 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling