#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
1-rasmda VTune dasturlash muhiti orqali Intel thread Checker Wizard ni o’rnatish va yangi project yaratish oynasi ko’rsatilgan.
2-rasm
2-rasmda Intel thread checker dasturida diagnostika amallarini bajarish oynasi ko’rsatilgan.
3-rasm
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:
Xulosa sifatida shuni aytishim mumkinki, ushbu laboratoriya ishini bajarish mobaynida men Intel thread checker dasturi haqida to’liq ma’lumotga ega bo’ldim hamda ushbu labaratoriya ishida sinab ko’rdim. Shuningdek, Intel thread checker dasturining parallel dasturlashda qo’llanilishini o’rgandim.
Do'stlaringiz bilan baham: |