Please ensure Javascript is enabled for purposes of website accessibility

Μάθημα : Παράλληλη Επεξεργασία

Κωδικός : CEID1057

CEID1057  -  Παναγιώτης Χατζηδούκας, Ευστράτιος Γαλλόπουλος

Χαρτοφυλάκιο - Ιστολόγιο

Πέμπτη, 6 Ιουλίου 2023 - 4:58 μ.μ.

- από τον χρήστη

"The short answer is that it has no impact on printf, and denotes (the) use of float or double in scanf."

https://stackoverflow.com/questions/25860850/what-is-the-difference-between-f-and-lf-in-c

 |  Σχόλια (0)

Κυριακή, 15 Μαΐου 2022 - 10:50 μ.μ.

- από τον χρήστη

Η επιλογή της γεννήτριας (ψευδό-)τυχαιών αριθμών εξαρτάται κυρίως από τις ανάγκες της εφαρμογής, δηλαδή πόσους τυχαίους αριθμούς χρειάζεται συνολικά αλλά και πόσες ανεξάρτητες ακολουθίες είναι απαραίτητες (π.χ. όταν έχουν παράλληλους υπολογισμούς).
 
Μερικές από τις καλύτερες γεννήτριες είναι οι ακόλουθες: 
α) Mersenne-Twister, με μια αποδοτική υλοποίησή εδώ: http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/#SFMT. Μάλιστα η γεννήτρια είναι διαθέσιμη στη C++: https://stackoverflow.com/question
 ... [περισσότερα]  |  Σχόλια (0)

Παρασκευή, 6 Μαΐου 2022 - 6:16 μ.μ.

- από τον χρήστη

Η υλοποίηση της εντολή atomic του OpenMP μπορεί να βασίζεται στις ακόλουθες ατομικές εντολές του GCC compiler: 
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html

π.χ. οι παρακάτω κώδικες δίνουν το ίδιο αποτέλεσμα όμως δεν έχουν την ίδια απόδοση:

pthread_mutex_lock(&mutex);
sum++;
pthread_mutex_unlock(&mutex);
__atomic_fetch_add(&sum, 1, __ATOMIC_SEQ_CST);

Ο ισόδυναμος κώδικας της δεύτερης περίπτωσης με OpenMP: 

#pragma omp atomic
sum++;
 |  Σχόλια (0)

Δευτέρα, 21 Μαρτίου 2022 - 5:19 μ.μ.

- από τον χρήστη

Μία καλή σύνοψη είναι στην απάντηση εδώ: 
https://stackoverflow.com/questions/12392278/measure-time-in-linux-time-vs-clock-vs-getrusage-vs-clock-gettime-vs-gettimeof

Στο αρχείο timer.c των παραδειγμάτων, η συνάρτηση get_wtime() χρησιμοποιεί την gettimeofday και επιστρέφει το wall-clock time ως double. 
Μια άλλη δυνατή υλοποίηση είναι με χρήση της συνάρτησης clock_gettime().  

 

 

 

 |  Σχόλια (0)

Παρασκευή, 18 Μαρτίου 2022 - 2:14 μ.μ.

- από τον χρήστη

Με μια μικρή διόρθωση σε έναν συντελεστή (0.2 αντί 0.5) σε σχέση με αυτό που είδαμε στο μάθημα ώστε να δίνει ίδιο αποτέλεσμα. 

 
Οπότε από αυτό εδώ (με 5 εντολές με -O3 και 4 εντολές με -O3 -mfma): 

double d = 5.0*a + 10.0*b;
double e = 0.2*(d + c);

Σε αυτό εδώ, με 2 εντολές FMA:  
double d = a + 2.0*b;
double e = d + 0.2*c;
Αναλυτικά εδώ:  https://godbolt.org/z/r11eMc91x

 

 |  Σχόλια (0)

Πέμπτη, 17 Μαρτίου 2022 - 12:02 π.μ.

- από τον χρήστη

 |  Σχόλια (0)

Παρασκευή, 5 Μαρτίου 2021 - 5:01 μ.μ.

- από τον χρήστη

First, you must download the Cygwin installer (setup-x86_64.exe) from here: http://cygwin.com/install.html

Run the Cygwin installer and select/install the necessary software packages.

In general, you need development tools such as the GNU compilers (C/C++), make, openmpi, etc.

For example, to have MPI support you must install everything related to openmpi (you can use the search option of the installer).
In the end, you must be able to execute mpicc and mpirun from the command prompt of Cygwin.

Y

 ... [περισσότερα]  |  Σχόλια (0)