Witam i od razu dziękuje za odpowiedzi
:)
Mam proste pytanie odnośnie równoległości - jak wiemy różni sie ona od współbieżności tym że wykonanie następuje w tym samym punkcie czasu (np. mając dwa rdzenie mozemy wykonac równoczesnie dwa wątki, dwie operacje)
zatem:
#include <stdio.h>
#include <omp.h>
#include <time.h>
void main() {
int threadID, totalThreads;
printf("before, is parallel: %d\n",omp_in_parallel());
#pragma omp parallel private(threadID)
{
threadID = omp_get_thread_num();
printf("\nHello World is from thread %d at %d\n",(int)threadID,clock());
if(threadID == 0) {
printf("\nMaster thread being called\n");
totalThreads = omp_get_num_threads();
printf("Total number of threads are %d\n",totalThreads);
}
printf("is parallel: %d\n",omp_in_parallel());
}
printf("after: %d\n",clock());
}
dlaczego ten kod zwraca różne czasy procesora dla:
printf("\nHello World is from thread %d at %d\n",(int)threadID,clock());
tej funkcji ?
wykonywane jest to w zrównoleglonym bloku a jednak czasy występują inne...
pozdrawiam i dziękuje