|
Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti kompyuter injiniringi ta’lim yo‘nalishi
|
bet | 3/3 | Sana | 01.12.2023 | Hajmi | 1,36 Mb. | | #109335 |
Bog'liq OpenMP PAKET TARKIBINI VA ISHLASHINI O‘RGANISHOpenMP da parallel bilan ishlash (natija: 1.9-rasm)
// OpenMP.cpp #include #include #include #include
#define ARRAY_SIZE 100000000
#define ARRAY_VALUE 1231 using namespace std;
int main() {
//jarayon bajarilish vaqtini aniqlash uchun kerakli
kalit so‘zlar
double itime, ftime, exec_time; itime = omp_get_wtime(); omp_set_num_threads(4);
int *arr = new int[ARRAY_SIZE]; std::fill_n(arr, ARRAY_SIZE,ARRAY_VALUE);
#pragma omp parallel for
for (int i = 0; i < ARRAY_SIZE; i++)
{
arr[i] = arr[i] / arr[i] + arr[i]/5-14;
}
// Jarayonga ketgan vaqtni hisoblash ftime = omp_get_wtime(); exec_time = ftime - itime;
cout << “Sarflangan vaqt: “ << exec_time << endl;
return 0;
}
Yuqorida keltirilgan natijalarga ko‘rib turgamnimizdek, OpenMP C/C++ da multi-threading(ko‘p-oqimlar)dan foydalanish bizga ko‘p vaqtni tejash imkonini beradi.
Xulosa.
Amaliy ish natijasi o'rnatilgan MicrosoftVisual Studio integratsiyalashgan dasturlash muhiti va unda OpenMP yordamida yaratilgan “Hello World!” loyihalari bo'ldi.
Yaratilgan dastur matnni 4 marta aks ettiradi, chunki tizimda 4 ta oqim yaratilgan (ikki yadroli protsessorda har bir yadro uchun ikkita virtual oqim mavjud), ularning har biri turli xil ma'lumotlarni qayta ishlaydi va to'rtta oqimning har biri "printf" kamandasini bajardi. Amalda jarayonlarning bunday parallellashuvi tezroq bajarilishiga olib keladi.
Ikkinchi berilgan komandaga ko'ra (1.7-rasm), oqimlar ketma-ketligi noto'g'ri: birinchi navbatda 1-oqim, keyin esa 0-oqim. Bu har bir oqim bitta vazifani turli xil tezligda bajarishini ko'rsatadi.
|
| |