#pragma omp parallel for
for (i = 0; i < N; i++)
{
sum_all += up[i] * vp[i];
}
Ayrim ishlanmalar oqimlar o’rtasidagi xisoblashlarni qanday bo’lishga bog’liq bo’lishi mumkin. Birinchi sxema – xar bir oqim uzluksiz ko’paytiriladigan vektorlar fragmentini qayta ishlaydi.
Intel thread checker dasturi o’zi nima?
Holat yo’llarini ochish va ko’rsatish
Thread checker bu bog’lovchi yordamchiga o’xshash vazifani bajaradi ya’ni amallarni va holatlarni (operatsiyalarni) bir biriga parallel ravishda boglanishini tekshiradi.
Bog’lanishdagi va paralellashtirishdagi bazi hatolarni tahlil qiladi.
Bog’lanish kutubxonalari tekshiradi
Kelasi threadlarni (bog’lanish, ulanishlarni) nazorat qiladi.
Intel thread checker dasturining xususiyatlari:
Boshqa dasturlar tomonidan qo’llab quvvatlanishi: Intel R c++, Fortran dasturlash tili, v7, Microsoft visual c++.Net 2002, 2003, 2005 variantlari, Microsoft visual studio. Net IDE.
Diagnostika manba kodlari ( drill – down to)
Ehtimoliy sabablar va diagnostikalar
Intel thread checker boshlanishidan ya’ni startdan oldingi sozlamalar:
Xotira kutibxona chaqirilishi
Thread va sync APIs
Xotira jamlanmalari
Vaqt va hajm
Intel thread checker tuzilishi va dastur komponentalarining qanday tuzilgani va kutubxonalarini qanday tuzilishi:
Intel thread checker kutubxonalari /MB , /MBd ko’rinishida bo’ladi.
Simvolli ma’lumotlar generatsiyasi /zi , /zI, /z7
1-rasm. Intel thread checker tuzilishi
1-rasmda VTune dasturlash muhiti orqali Intel thread Checker Wizard ni o’rnatish va yangi project yaratish oynasi ko’rsatilgan.
2-rasm. Intel thread checker dasturida diagnostika amallarini bajarish oynasi
3-rasm. Manba kodlarini dasturlash tilidagi kodlari
3-rasmda manba kodlarini dasturlash tilidagi kodlari haqida ma’lumotlar berilgan. Bu ma’lumotlar orqali Xotirani tahlil qilishda kodlar orqali tahlil qilish amalga oshiradi va o’zgartishlar kiritish amallarini bajaradi.
Multiple thread uchun misol:
#include
#include
const int numThreads = 4;
DWORD WINAPI helloFunc(LPVOID arg ) {
printf(“Hello Thread\n”);
return 0; }
main() {
HANDLE hThread[numThreads];
for (int i = 0; i < numThreads; i++)
hThread[i] =
CreateThread(NULL, 0, helloFunc, NULL, 0, NULL );
WaitForMultipleObjects(numThreads, hThread,
TRUE, INFINITE);
}
Bu C++ dastuash muhitida tuzilgan dasturlash parallel dasturlashga asos bo’luvchi kichik dastur.
4-rasm. Analizlar (tahlillar) natijalari.
Xulosa:Men ushbu labaratoriya ishini bajarish davomida Intel thread checker dasturida ishlashni o’rgandim. Mazkur laboratoriya ishida OpenMP va ko’p oqimlilik dasturlari uchun mo’ljallangan, dasturni amalga oshirish natijalari bo’yicha ma’lumotlarni avtomatlashtirilgan taxlili va jamlanishiga asoslangan sozlash qurilmalaridan biri – Intel® Thread Checker (ITC) ko’rib chiqdim
Do'stlaringiz bilan baham: |