THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Παράλληλα και Διανεμημένα Συστήματα => Topic started by: Apostolof on November 22, 2017, 17:44:28 pm



Title: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on November 22, 2017, 17:44:28 pm
Συζήτηση για την δεύτερη εργασία.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: mtzikara on November 23, 2017, 13:08:04 pm
βρήκατε το corpus.mat που λέει ότι δίνεται?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on November 25, 2017, 18:59:39 pm
Η εκφώνηση που βρισκέται ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on November 27, 2017, 02:13:00 am
Ρε παιδιά η εκφώνηση της δεύτερης εργασίας υπάρχει κάπου ή δεν την έχει βγάλει ακόμα ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on November 27, 2017, 02:38:11 am
Εκεί που ήταν και η προηγούμενη, στο elearning.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on November 27, 2017, 20:12:42 pm
βρήκατε το corpus.mat που λέει ότι δίνεται?
Τελικά πού βρίσκεται αυτό το αρχείο ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: mtzikara on December 07, 2017, 14:41:31 pm
Ανέβηκαν τα δεδομένα σε ένα zip


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on December 10, 2017, 02:38:42 am
Στο script του Matlab που υλοποιεί την knn αναζήτηση, στη συνάρτηση knnsearch( X, X, 'k', kNbr+1 ) η παράμετρος k τι δηλώνει ; Πόσους κοντινότερους γείτονες ψάχνουμε ή κάτι άλλο ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 10, 2017, 14:05:11 pm
Στο script του Matlab που υλοποιεί την knn αναζήτηση, στη συνάρτηση knnsearch( X, X, 'k', kNbr+1 ) η παράμετρος k τι δηλώνει ; Πόσους κοντινότερους γείτονες ψάχνουμε ή κάτι άλλο ;

Ναι. Το 'k' δηλώνει στην συνάρτηση πως το επόμενο όρισμα αφορά το πλήθος των γειτόνων που ζητείται (default = 1).

Το +1 δεν ξέρω γιατί υπάρχει , το doc δεν αναφέρει τίποτα σχετικά με αυτό


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on December 10, 2017, 15:15:52 pm
Πρέπει κάπου μες στον αλγόριθμό μας να υπολογίζουμε την απόσταση κάθε σημείου απ' όλα τα υπόλοιπα σημεία και να αποθηκεύουμε αυτές τις αποστάσεις σ' έναν πίνακα ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 10, 2017, 16:30:53 pm
Πρέπει κάπου μες στον αλγόριθμό μας να υπολογίζουμε την απόσταση κάθε σημείου απ' όλα τα υπόλοιπα σημεία και να αποθηκεύουμε αυτές τις αποστάσεις σ' έναν πίνακα ;

Μία λύση είναι αυτή ναι


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 10, 2017, 17:01:32 pm
Τα στοιχεία του πίνακα mnist_train.mat πως τ διαβάζεις;;; Τα κάνεις binary και τα αποθηκεύεις σ ένα άλλο αρχείο ή γίνεται κ κατευθείαν;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on December 10, 2017, 20:09:12 pm
Τα στοιχεία του πίνακα mnist_train.mat πως τ διαβάζεις;;; Τα κάνεις binary και τα αποθηκεύεις σ ένα άλλο αρχείο ή γίνεται κ κατευθείαν;
Εγώ δημιούργησα ένα text file από το .mat και τα διάβασα έτσι στη C. Με σκριπτακι σε Python το έκανα αυτό! 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 10, 2017, 20:24:13 pm
Εγώ δημιούργησα ένα text file από το .mat και τα διάβασα έτσι στη C. Με σκριπτακι σε Python το έκανα αυτό! 

Ευχαριστώ για τη συμβουλή, τλκα έκανα κάτι παρόμοιο στο matlab


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: TheoProt on December 11, 2017, 00:32:15 am
Παιδιά ποιο από τα δύο αρχεία πρέπει να χρησιμοποιήσουμε ή πρέπει να χρησιμοποιήσουμε και τα δύο ; Ρωτάω γιατί το αρχείο mnist_train_svd.mat ας πούμε περιέχει τις διαστάσεις για 60000 σημεία και η εκφώνηση λέει κάθε διεργασία να διαβάζει ένα block, δηλαδή ένα σημείο (κάθ σημείο έχει 30 συντεταγμένες). Καταλαβαίνω κάτι λάθος ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: gdims on December 11, 2017, 13:20:03 pm
Ένα block δεν είναι ένα σημείο. Κάθε διεργασία θα διαβάζει ένα πλήθος σημείων. Τα δυο αρχεία είναι απλά δυο διαφορετικές περιπτώσεις.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 11, 2017, 15:14:51 pm

Email για το Hellas Grid έχει έρθει?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: kons on December 11, 2017, 16:31:11 pm
https://www.dropbox.com/s/jd8icqv73oo4zet/data.bin?dl=0

Τα δεδομένα σε .bin αρχείο για οποιον τα θελει.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: alekosts on December 11, 2017, 18:36:46 pm
https://www.dropbox.com/s/jd8icqv73oo4zet/data.bin?dl=0

Τα δεδομένα σε .bin αρχείο για οποιον τα θελει.

Τα δεδομένα τα έχεις αποθηκεύσει ως double ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: kons on December 11, 2017, 20:21:02 pm
Τα δεδομένα τα έχεις αποθηκεύσει ως double ;

Τύπος float64 από matlab που είναι (σχεδόν; ) πάντα όσο ο double (8bytes).

Σε κάθε περίπτωση μπορείς όταν κάνεις fread να βάζεις 8 αντί για sizeof(double).


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on December 11, 2017, 21:24:03 pm
https://www.dropbox.com/s/jd8icqv73oo4zet/data.bin?dl=0

Τα δεδομένα σε .bin αρχείο για οποιον τα θελει.

Ευχαριστούμε! ^wav^


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 12, 2017, 05:06:44 am

Έχει καταφέρει κανένας να χρησιμοποιήσει την MPI_Type_Struct επιτυχώς για arrays?

Προσπαθώ να χώσω ένα struct { int, int, double[] }  σε ένα MPI_Type για να σταλθεί όλο μαζί και ο πίνακας double χτυπάει συνέχεια  >:(


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dinis on December 12, 2017, 18:52:58 pm
Όσοι έχουν κάνει την εργασία, πόσο χρόνο σας πήρε;
Ποιο δύσκολη απ την προηγούμενη;
Σκέφτομαι να ξεκινήσω αύριο και δεν ξέρω αν θα προλάβω μέχρι την Κυριακή. :-\


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 12, 2017, 21:21:27 pm
όσοι δεν έχουμε matlab τι κάνουμε?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 12, 2017, 21:35:15 pm
όσοι δεν έχουμε matlab τι κάνουμε?

Python. Ή πας στη νησίδα, γράφεις ένα Scriptακι στο τσακα τσάκα, τα κάνεις txt bin κλπ και τα παίρνεις σπίτι σου με flashaki.

Αλλά Python τα έχει όλα και είναι και τζάμπα.

Καλωσόρισες στον τομέα της Ηλεκτρονικής! :D :D


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Ancient on December 12, 2017, 21:55:28 pm
όσοι δεν έχουμε matlab τι κάνουμε?

Το βρίσκεις στα γνωστά λημέρια  ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 12, 2017, 22:12:25 pm
Το βρίσκεις στα γνωστά λημέρια  ;)

Τιιιιιιιιι? Μα αυτό είναι παράαανομοοο  :D :D :D


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 13, 2017, 00:40:08 am
τελικά "αγόρασα" τη matlab  ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dinis on December 13, 2017, 20:05:38 pm
Όταν ζητάει απο το πρόγραμμα να ξεκινάει p threads, θα το κάνουμε με OpenMP ή με mpiexec και -n p όταν πάμε να το τρέξουμε;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 13, 2017, 20:52:39 pm
Όταν ζητάει απο το πρόγραμμα να ξεκινάει p threads, θα το κάνουμε με OpenMP ή με mpiexec και -n p όταν πάμε να το τρέξουμε;

Εννοεί να ξεκινήσεις p κανονικές διεργασίες. Δλδ μέσω της εντολής mpiexec. Ειδάλλως θα σου τα  προσδιόριζε ως νήματα.

Απλά ΑΝ χρησιμοποιήσεις OpenMP εντός της κάθε διεργασίες, θα πρέπει να δηλώσεις τους αντίστοιχους πυρήνες που θα αξιοποίησεις στο HellasGrids

πχ
omp_set_num_threads(8)
mpirun -np 4 a.out
Στο .sh του hellas grid (δεν θυμάμαι σύνταξη) θα δηλώσεις αρ. κόρων
numCPUs = (Num_MPI_Process)X(Num_threads_per_process) = 4 x 8 = 32


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 13, 2017, 21:20:12 pm
Αυτό που διαβάζουμε υποτίθετε είναι 60000 σημεία με συντεταγμένες (χ1,χ2,...,χ30) σωστά?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 13, 2017, 21:40:24 pm
Αυτό που διαβάζουμε υποτίθετε είναι 60000 σημεία με συντεταγμένες (χ1,χ2,...,χ30) σωστά?

Ναι.

Έτσι λένε  και στο e-learning


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: allstarabey on December 14, 2017, 01:17:16 am
παιδια μετα πως τρεχουμε στο hellas grid .Εχει καπου οδηγιες?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 14, 2017, 01:27:59 am
Νομίζω ζητάω πολλά και ευχαριστώ  ;). Ένα ακόμα, όταν λέει για κάθε σημείο του μπλόκ να βρίσκει τους Κ κοντινότερους γείτονες τι ενοεί. Εγώ καταλαβαίνει ότι για κάθε σημείο θα βρίσκει για κάθε συντεταγμένη του τους κοντινότερους γείτονες σε αυτόν τον άξονα, δηλαδή για κάθε σημείο θα βρίσκει Κ γείτονες για κάθε συντεταγμένη του, καλά το λέω?  ^confused^ ^confused^ ^confused^ ^confused^ ^confused^

Νομίζω ζητάω πολλά και ευχαριστώ  ;). Ένα ακόμα, όταν λέει για κάθε σημείο του μπλόκ να βρίσκει τους Κ κοντινότερους γείτονες τι ενοεί. Εγώ καταλαβαίνει ότι για κάθε σημείο θα βρίσκει για κάθε συντεταγμένη του τους κοντινότερους γείτονες σε αυτόν τον άξονα, δηλαδή για κάθε σημείο θα βρίσκει Κ γείτονες για κάθε συντεταγμένη του, καλά το λέω?  ^confused^ ^confused^ ^confused^ ^confused^ ^confused^

Όχι ούτε καν -_-

Ψάξε να δεις επεξήγηση στο internet, καλύτερα γιατί θέλει ψάξιμο.

Καλή τύχη


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Vlassis on December 14, 2017, 01:48:12 am
παιδια μετα πως τρεχουμε στο hellas grid .Εχει καπου οδηγιες?

αυτη τη στιγμη δε θυμαμαι ακριβως, αλλα νομιζω οτι εδω μεσα: https://it.auth.gr/el/sciComp/computingServices  (https://it.auth.gr/el/sciComp/computingServices) μπορεις να βρεις χρησιμες πληροφοριες  ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: allstarabey on December 14, 2017, 14:05:19 pm
ειχε ανεβει εδω το αρχειο με τα δεδομένα σε bin.
καποιος ευκολος τροπος να το κανεις σε txt?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on December 14, 2017, 15:26:37 pm
ειχε ανεβει εδω το αρχειο με τα δεδομένα σε bin.
καποιος ευκολος τροπος να το κανεις σε txt?

Δεν γνωρίζω. Αλλά μπορείς να τα κάνεις από .mat σε txt εύκολα με την εντολή dlmwrite
https://www.mathworks.com/help/matlab/ref/dlmwrite.html


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 14, 2017, 18:37:28 pm
Quote
Παράταση 2ης εργασίας
από Φλωρος Δημητριος - Πέμπτη, 14 Δεκέμβριος 2017, 1:27 μμ
 
Η 2η εργασία παίρνει παράταση έως τις 7 Ιανουαρίου 2018.
^wav^


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 24, 2017, 15:42:06 pm
Κατάλαβε κανένας πως θα φτίαξουμε το script ώστε να δουλεύει με mpi και openmp μαζί;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Vlassis on December 24, 2017, 16:19:22 pm
Κατάλαβε κανένας πως θα φτίαξουμε το script ώστε να δουλεύει με mpi και openmp μαζί;
αν καταλαβα τι εννοεις, στο Makefile θα χρησιμοποιησεις το flag -fopenmp για να δημιουργησεις το εκτελεσιμο και στο submit.sh (ή οπως  αλλιως το ονομασεις) θα εκτελεσεις με mpiexec  ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 24, 2017, 19:01:11 pm
αν καταλαβα τι εννοεις, στο Makefile θα χρησιμοποιησεις το flag -fopenmp για να δημιουργησεις το εκτελεσιμο και στο submit.sh (ή οπως  αλλιως το ονομασεις) θα εκτελεσεις με mpiexec  ;)

πχ. άμα έχουμε: #PBS -l nodes=4:ppn=8
πως θα δηλώσουμε στο mpi να τρέξει στα 4 nodes μόνο


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Vlassis on December 24, 2017, 19:36:46 pm
πχ. άμα έχουμε: #PBS -l nodes=4:ppn=8
πως θα δηλώσουμε στο mpi να τρέξει στα 4 nodes μόνο
> mpiexec -n <# of processes> -ppn <# of processes per node> -f <hostfile> myprog.exe

επισης, ξεχασα να πω πριν, compile κανεις με mpicc στο makefile :P


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: The Joker on December 24, 2017, 23:27:19 pm
Παιδιά, ξέρει κανείς για τη δοκιμή στο grid, για πόσες διεργασίες (σύνολο) και πόσους γείτονες θέλουν?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: ApostolisS on December 25, 2017, 17:12:08 pm
Στο grid για να μετρησω χρονο χρησιμοποιω το MPI_Wtime() μεσα στον κωδικα αλλα για τα ιδια ακριβως ορισματα οι χρονοι που παιρνω εχουν πολυ μεγαλη διακυμανση απο εκτελεση σε εκτελεση.Καταφερε κανεις να παιρνει σταθερους χρονους?
το script που τρεχω ειναι το παρακατω

#!/bin/bash
#PBS -q pdlab
#PBS -N mpi-a.out
#PBS -j oe
#PBS -l nodes=4:ppn=1

module load mpi/mpich3-x86_64
cd $PBS_O_WORKDIR

echo "====test Run starts now ==== date"
mpiexec -np $PBS_NUM_NODES -ppn 1 ./a.out 10000 2 2  &>$PBS_JOBNAME.log


echo "====test Run ends now ==== date"

 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 27, 2017, 12:27:27 pm
τα labels πως τα διαβάζουμε? (από το αρχείο .bin)
προσπαθώ μέρες να βρω πως να φτιάξω τα labels και τελικά τα έχει έτοιμα στο αρχείο...   :P

α το βρήκα  8))


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 27, 2017, 18:38:06 pm
τα labels πως τα διαβάζουμε? (από το αρχείο .bin)
προσπαθώ μέρες να βρω πως να φτιάξω τα labels και τελικά τα έχει έτοιμα στο αρχείο...   :P

α το βρήκα  8))

Νομίζω είχε πει ο Πιτσιάνης ότι δεν χρειάζονται τα labels


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 27, 2017, 18:41:57 pm
Αφού τελικά αυτό ψάχνουμε, σε ποιο label ανήκει το κάθε σημείο απ'ότι κατάλαβα.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 27, 2017, 18:50:59 pm
Αφού τελικά αυτό ψάχνουμε, σε ποιο label ανήκει το κάθε σημείο απ'ότι κατάλαβα.

Εγώ λέω για το label που έχει στο matlab (αυτά που έχουν τιμή από 1-10) γιατί μπορεί να λέμε για διαφορετικά πράγματα


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 27, 2017, 19:02:27 pm
Εγώ λέω για το label που έχει στο matlab (αυτά που έχουν τιμή από 1-10) γιατί μπορεί να λέμε για διαφορετικά πράγματα
Και εγώ για αυτά λέω, τι άλλο να χρησιμοποιήσεις.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 27, 2017, 19:08:07 pm
Αφού τελικά αυτό ψάχνουμε, σε ποιο label ανήκει το κάθε σημείο απ'ότι κατάλαβα.

Αυτό που ψάχνουμε είναι τους k κοντινότερους γείτονες για κάθε σημείο


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 27, 2017, 19:13:27 pm
Αυτό που ψάχνουμε είναι τους k κοντινότερους γείτονες για κάθε σημείο
Αφού τους βρούμε, δε πρέπει να βρούμε και ποιό label εμφανίζεται περισσότερο σε αυτούς?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: vag178 on December 27, 2017, 19:22:43 pm
Αφού τους βρούμε, δε πρέπει να βρούμε και ποιό label εμφανίζεται περισσότερο σε αυτούς?

Νομίζω πως δεν χρειάζεται αλλά ας πει και κανένας άλλος μη σ κάψω


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dinis on December 27, 2017, 20:59:39 pm
Πως καταφέρατε να γράψετε την έξοδο του προγράμματος σε αρχείο ?
Δοκίμασα το παρακάτω που έκανε και το παιδί σ ένα απλό hello world σε mpi και το μόνο που μου εκτυπώνει είναι τα echo.
Ότι έχω σε printf στο πρόγραμμα δεν τα γράφει.
Δοκίμασα να ανοίξω αρχείο στην C και δούλεψε απλά μ φαίνεται πολύ ποιο εύκολο με μια εντολή στο σκριπτακι.
Καμιά ιδέα ?  :???:

echo "====test Run starts now ==== date"
mpiexec -np $PBS_NUM_NODES -ppn=1 ./a.out >$PBS_JOBNAME.log
echo "====test Run ends now ==== date"


Επίσης δοκίμασα και αυτό που δίνεται σε pdf και πάλι τίποτα:

export NP=$( cat $PBS_NODEFILE | wc - l )
exportI 2G_MPI_TYPE = mpich2
exportI 2G_MPI_APPLICATION = a.out
$I2G_MPI_START



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feoudarxhs on December 28, 2017, 20:28:39 pm
Γνωρίζει κανείς μέχρι πόσα CPU Cores μπορείς να ζητήσεις από τα clusters του HellasGrid; Γενικά μέχρι τους 30 πυρήνες τα jobs μου γίνονται scheduled σχεδόν άμεσα και τρέχουν. Οταν ζητάω 50-60 παραμένουν scheduled επί ώρες και τρώω και error.

Εδώ οι διαθέσιμοι κόμβοι που υπάρχουν αυτή στιγμή στο SEE VO.
Code:
@ui3 ex2]$ lcg-infosites -vo see ce
#   CPU   Free Total Jobs Running Waiting ComputingElement
----------------------------------------------------------------
    144    138         0      0      0 ce.grid.teiemt.gr:8443/cream-pbs-see
    144    144         0      0      0 ce.physics.science.az:8443/cream-pbs-see
      0      0         0      0      0 cox01.grid.metu.edu.tr:8443/cream-pbs-see
     16     16         0      0      0 cr1.ipp.acad.bg:8443/cream-pbs-seevo
     14     14         0      0      0 cream-ce01.ariagni.hellasgrid.gr:8443/cream-pbs-see
    400    398         3      0      3 cream-ce01.marie.hellasgrid.gr:8443/cream-pbs-see
     44     44         5      0      5 cream.afroditi.hellasgrid.gr:8443/cream-pbs-see
    312    112         0      0 444444 cream.ipb.ac.rs:8443/cream-pbs-see
    510    247        16     11      5 cream01.grid.auth.gr:8443/cream-pbs-see
    240     73         0      0      0 kalkan1.ulakbim.gov.tr:8443/cream-pbs-see
     66     40         0      0      0 snf-189278.vm.okeanos.grnet.gr:8443/cream-pbs-see


Και εδώ αυτά που κάνουν match το job που κάνω submit:
Code:
Connecting to the service https://wms02.athena.hellasgrid.gr:7443/glite_wms_wmproxy_server

==========================================================================

    COMPUTING ELEMENT IDs LIST
 The following CE(s) matching your job requirements have been found:

*CEId*
 - cream-ce01.marie.hellasgrid.gr:8443/cream-pbs-see
 - cream.afroditi.hellasgrid.gr:8443/cream-pbs-see
 - snf-189278.vm.okeanos.grnet.gr:8443/cream-pbs-see
 - cream01.grid.auth.gr:8443/cream-pbs-see
 - cream.ipb.ac.rs:8443/cream-pbs-see

==========================================================================

Έχω δοκιμάσει να δεσμεύσω explicitly οποιοδήποτε από τα matching nodes.

Εδώ το error που δέχομαι:
Code:
======================= glite-wms-job-status Success =====================
BOOKKEEPING INFORMATION:

Status info for the Job : https://lb01.athena.hellasgrid.gr:9000/jim8Y1ApCsRXZf3Rf6xH9A
Current Status:     Aborted
Logged Reason(s):
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM633855862)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM337959222)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM122746662)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM531944471)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM325987241)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM817972776)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM624257868)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM369324423)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM794677337)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM861410314)
    - BLAH error: submission command failed (exit code = 1) (stdout:) (stderr:qsub: submit error (Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement)-) N/A (jobId = CREAM162706781)
Status Reason:      hit job shallow retry count (10)
Destination:        snf-189278.vm.okeanos.grnet.gr:8443/cream-pbs-see
Submitted:          Thu Dec 28 17:08:28 2017 EET
==========================================================================

Ειναι limit που θέτει ο workload managment server και ποιο είναι αυτό;


Επίσης για κάποιο λόγο σήμερα δεν έχω πρόσβαση σε κανένα queue του τοπικού cluster του ΑΠΘ. Σε όλα τρώω authorization error. Ούτε auth, ούτε see, ούτε pdlab.
Code:
qsub: Unauthorized Request  MSG=group ACL is not satisfied: user ####sth####@ui3.afroditi.hellasgrid.gr, queue auth

Έχει κανείς άλλος τέτοιο πρόβλημα;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: alekosts on December 29, 2017, 00:49:53 am
Αφού τους βρούμε, δε πρέπει να βρούμε και ποιό label εμφανίζεται περισσότερο σε αυτούς?
Αρχικά και εγώ αυτό νόμιζα , αλλά έχω την εντύπωση ότι τελικά  το label  κάθε σημείου είναι το ίδιο με τους περισσότερους κοντινότερους γείτονες του (τουλάχιστον για τους 30 κοντινότερους γείτονες σε 30000 σημεία που το τέσταρα ) . Δηλαδή για όσα σημεία για παράδειγμα έχουν label 4 , θα έχουν και οι κ κοντινότεροι γείτονες label 4.Για αυτό δεν πρέπει να έχει σημασία, εκτός και αν έχω κάνει κάποιο λάθος στον αλγόριθμο μου. Είναι κανείς σίγουρος ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: johnvoyager on December 29, 2017, 14:59:55 pm
Εγώ έχω μπερδευτεί με την εκφώνηση.

Από ότι κατάλαβα χρησιμοποιούμε το ίδιο dataset και σαν testing και σαν training.Αυτό το κάνουμε για να τσεκάρουμε μετά την ορθότητα/ ακρίβεια ?
Άρα πιο από τα 2 θέλει να χωρίσουμε σε μικρότερα blocks;

Δηλαδή έχουμε 60000 σημεία που θέλουμε να τεστάρουμε,  και 60000 σημεία που έχουν έτοιμα labels.
 Άρα τί χωρίζουμε;

Το training ή το testing?

Δηλαδή π.χ. για τα 60000 σημεία που θέλουμε να τεστάρουμε ξεκινάμε ξέρω γω από το πρώτο και θέλουμε να βρούμε του κ κονινότερους γείτονες από τα 60000 σημεία του training. Αυτά τα 60000 θέλουμε να σπάσουμε σε μικτρότερα blocks; Ή το ανάποδο ;


edit:  δηλαδή για κάθε σημείο απο τα 60000 που (κανονικά) δεν έχουν label πρέπει να το τεστάρω( αποστάσεις και sort) με τα 60000 που έχουν label
αυτά τα 60000 που έχουν label τα χωρίζω ας πούμε σε 4 υποσύνολα και κάνω τις πράξεις παράλληλα και μετά θα έχω 4*κ αποστάσεις από τις οποίες πρέπει να κρατήσω τις κ μικρότερες κλπ και όλο αυτό είναι να γίνει 60000 φορές ;   καλά το κατάλαβα ή δεν ξέρω τί μου γίνεται;  :P




Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feoudarxhs on December 29, 2017, 15:21:22 pm
Εγώ έχω μπερδευτεί με την εκφώνηση.

Από ότι κατάλαβα χρησιμοποιούμε το ίδιο dataset και σαν testing και σαν training.Αυτό το κάνουμε για να τσεκάρουμε μετά την ορθότητα/ ακρίβεια ?
Άρα πιο από τα 2 θέλει να χωρίσουμε σε μικρότερα blocks;

Δηλαδή έχουμε 60000 σημεία που θέλουμε να τεστάρουμε,  και 60000 σημεία που έχουν έτοιμα labels.
 Άρα τί χωρίζουμε;

Το training ή το testing?

Δηλαδή π.χ. για τα 60000 σημεία που θέλουμε να τεστάρουμε ξεκινάμε ξέρω γω από το πρώτο και θέλουμε να βρούμε του κ κονινότερους γείτονες από τα 60000 σημεία του training. Αυτά τα 60000 θέλουμε να σπάσουμε σε μικτρότερα blocks; Ή το ανάποδο ;




Κανένας κόμβος δεν πρέπει να τα έχει όλα, για κανένα λόγο, όποιος και αν είναι αυτός. Στην πραγματική του χρήση, δε θα χρησιμοποιηθεί μια τέτοια υλοποίηση για datasets που στο desktop του σπιτιού θέλουν 60 secs για να γίνουν classified. Σκέψου λοιπόν να σου δώσω ένα dataset 500GB. Σε κανένα κόμβο δε θα έχεις τόση RAM ώστε να το φορτώσεις με τη μία. ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: johnvoyager on December 29, 2017, 15:28:46 pm
Κανένας κόμβος δεν πρέπει να τα έχει όλα, για κανένα λόγο, όποιος και αν είναι αυτός. Στην πραγματική του χρήση, δε θα χρησιμοποιηθεί μια τέτοια υλοποίηση για datasets που στο desktop του σπιτιού θέλουν 60 secs για να γίνουν classified. Σκέψου λοιπόν να σου δώσω ένα dataset 500GB. Σε κανένα κόμβο δε θα έχεις τόση RAM ώστε να το φορτώσεις με τη μία. ;)

ααα οκ, κατάλαβα, είναι  θέμα μνήμης

ty



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 29, 2017, 17:15:40 pm
Δηλαδή κάθε μπλοκ θα βρίσκει τους κοντινότερους γείτονες κάθε σημείου του μέσα στο συγκεκριμένο μπλοκ και όχι σε όλο το σύνολο των 60000 σημείων, σωστά?
εδιτ: εγώ όταν το τρέχω για 60000 σημεία σβήνει ο υπολογιστής πάντως  :P

η εκφώνηση πάντως τέρμα άθλια δεν εξηγεί τι θέλει ακριβώς  :???:


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feoudarxhs on December 29, 2017, 17:55:50 pm
Δηλαδή κάθε μπλοκ θα βρίσκει τους κοντινότερους γείτονες κάθε σημείου του μέσα στο συγκεκριμένο μπλοκ και όχι σε όλο το σύνολο των 60000 σημείων, σωστά?
εδιτ: εγώ όταν το τρέχω για 60000 σημεία σβήνει ο υπολογιστής πάντως  :P

η εκφώνηση πάντως τέρμα άθλια, ή είναι ιδέα μου?  :???:

Στο σύνολο των σημείων θα βρίσκει τους γείτονες. Απλά δε θα υπάρχει καμία χρονική στιγμή στην οποία ένας κόμβος θα έχει στη διάθεσή του το σύνολο των δεδομένων.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on December 29, 2017, 18:09:39 pm
Στο σύνολο των σημείων θα βρίσκει τους γείτονες. Απλά δε θα υπάρχει καμία χρονική στιγμή στην οποία ένας κόμβος θα έχει στη διάθεσή του το σύνολο των δεδομένων.
Α οκ, άρα κάτι τέτοιο που λέει ο johnvoyager μάλλον.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: menelaos619 on December 29, 2017, 23:09:36 pm
Καλησπέρα παιδιά και σορρυ για την "άκυρη" ερώτηση
Προλαβαίνω να παραδώσω την εργασία εαν ξεκινήσω τώρα? Είχα κάνει κάποια πράγματα πριν τις γιορτές αλλά τελικά ήταν λαθος και μετά δεν προλαβαίνα να ασχοληθώ με τα παράλληλα. Αξίζει να προσπαθήσω να την ξεκινήσω τώρα  ή δεν παίζει να προλάβω?
Ευχαριστώ


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: johnvoyager on December 30, 2017, 00:14:37 am
Καλησπέρα παιδιά και σορρυ για την "άκυρη" ερώτηση
Προλαβαίνω να παραδώσω την εργασία εαν ξεκινήσω τώρα? Είχα κάνει κάποια πράγματα πριν τις γιορτές αλλά τελικά ήταν λαθος και μετά δεν προλαβαίνα να ασχοληθώ με τα παράλληλα. Αξίζει να προσπαθήσω να την ξεκινήσω τώρα  ή δεν παίζει να προλάβω?
Ευχαριστώ

Και εγώ στην ίδια φάση είμαι,  έχουμε 8 μέρες. Νομίζω βγαίνει άνετα.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: mytilisks on December 30, 2017, 04:30:05 am
Για να τρέξω την εργασία στο HellasGrid πρέπει να ανεβάσω εκεί, πέρα απο το script, τα αρχεία των δεδομένων και το εκτελέσιμο? Ή πρέπει να κάνω εκεί compile τον κώδικα με Makefile? Έχω διαβάσει τις οδηγίες του συνδέσμου[4] που έστειλαν αλλά δεν μπορώ να καταλάβω τι παίζει.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: alekosts on December 30, 2017, 15:52:23 pm
Συγνώμη παιδία αλλά δυσκολευομαι με το hellasgrid.Προσπαθώ να γράψω ένα απλό script που να τρέχει ενα hello world πρόγραμμα και παίρνω συνεχώς αυτο το error:
qsub: Unauthorized Request MSG=group ACL is not satisfied: user atsiavos@ui3.afroditi.hellasgrid.gr, queue auth
Μήπως ξέρετε για ποιο λογο γινεται αυτο?



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feugatos_# on December 30, 2017, 16:14:29 pm
Συγνώμη παιδία αλλά δυσκολευομαι με το hellasgrid.Προσπαθώ να γράψω ένα απλό script που να τρέχει ενα hello world πρόγραμμα και παίρνω συνεχώς αυτο το error:
qsub: Unauthorized Request MSG=group ACL is not satisfied: user atsiavos@ui3.afroditi.hellasgrid.gr, queue auth
Μήπως ξέρετε για ποιο λογο γινεται αυτο?



Στο mail που μας ήρθε από το HellasGrid αναφέρεται ξεκάθαρα το εξής:

Για την υποβολή εργασιών μπορείτε να χρησιμοποιήσετε την ουρά pdlab. Επομένως, θα χρειαστεί να αντικαταστήσετε την παρακάτω γραμμή (όπως δίνεται στα παραδείγματα για την υποβολή εργασιών στον σύνδεσμο [4])

#PBS -q auth

με την

#PBS -q pdlab


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: alekosts on December 30, 2017, 16:29:17 pm
Στο mail που μας ήρθε από το HellasGrid αναφέρεται ξεκάθαρα το εξής:

Για την υποβολή εργασιών μπορείτε να χρησιμοποιήσετε την ουρά pdlab. Επομένως, θα χρειαστεί να αντικαταστήσετε την παρακάτω γραμμή (όπως δίνεται στα παραδείγματα για την υποβολή εργασιών στον σύνδεσμο [4])

#PBS -q auth

με την

#PBS -q pdlab
Δε το πρόσεξα  :-[ . Σε ευχαριστώ πάρα πολύ.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 01, 2018, 22:57:48 pm
Έτρεξα τον αλγόριθμο μου για τα 10 πρώτα σημεία (με 30 διαστάσεις). Είναι στο συνημμένο τα αποτελέσματα που έβγαλα σε μορφή:
point_one to point_two = distance^2

Ας επιβεβαιώσει κάποιος ότι το αποτέλεσμα είναι σωστό γιατί εδώ δεν έχω windows, ούτε matlab, ούτε καλό μηχάνημα.. Ούτε πολλές ελπίδες ότι θα τελειώσω εγκαίρως :P

Το octave δεν έχει knn ακόμα, σωστά;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: allstarabey on January 02, 2018, 05:47:52 am
περασα τα δεδομενα απο Mat σε txt και προσπαθω να τα διαβασω
μετα απο πολλες ωρες ,δεν μπορεσα να βρω λυση γιατι επειδη ειναι χωρισμενα με κομμα με το fscanf επαιρνα μονο την πρωτη τιμη
και μετα δεν επαιρνε τις επομενες.
τα δεδομενα ειναι στο συννημενο.
   for(i=0; i<N; i++){
         for(j=0; j<D; j++)
         {
            
            double  temp;
            fscanf(fp,"%lf\t",&temp);
            if (EOF == fscanf(fp,"%lf\t",&temp)){
               printf("ERROR Reading datapoint in %d row, %d column",i,j);
                                }
                       }   
   }         


Kαμια συμβουλη γιατι εχω παιδευτει αληθεια πολ ? :-[ :-[ :-[


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 02, 2018, 13:06:31 pm

Στην fscanf έχεις βάλει \t αντί για ,.

Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[]){
double values[2][4];
FILE *file = fopen( "file.txt", "r");

for(int i = 0; i<2; ++i) {
for(int j=0; j<4; ++j){
fscanf(file, "%lf,", &values[i][j]);
printf("%lf\n", values[i][j]);
}
     }
 
    fclose(file);
    return 0;
}


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 04, 2018, 18:52:29 pm
Για να τρέξω την εργασία στο HellasGrid πρέπει να ανεβάσω εκεί, πέρα απο το script, τα αρχεία των δεδομένων και το εκτελέσιμο? Ή πρέπει να κάνω εκεί compile τον κώδικα με Makefile? Έχω διαβάσει τις οδηγίες του συνδέσμο

Εγώ για το compile έγραψα ένα απλό script και το τρέχω με qsub:

Code:
#!/bin/bash
#PBS -N someName
#PBS -q pdlab
#PBS -j oe
#PBS -l walltime=0:00:20

cd $PBS_O_WORKDIR

module load openmpi
mpicc args....

Καμία ιδέα για τον έλεγχο των αποτελεσμάτων; Όταν τελειώσει ο αλγόριθμος αποθηκεύετε τα αποτελέσματα σε κάποιο αρχείο;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: WashAndGo on January 04, 2018, 21:32:29 pm
ευχαριστώ!

 >:(


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dimvasdim on January 05, 2018, 18:43:45 pm
Μπορεί κάποιος να μου πει τι θα πρέπει να στέλνουμε μεταξύ των processes; Εγώ σκέφτομαι ότι το κάθε process θα έχει ένα δισδιάστατο πίνακα με τα σημεία και τις διαστάσεις τους (δηλαδη τα δεδομένα) και αφού κληθεί η knn_search θα δημιουργεί δύο ακόμα δισδιάστατους πίνακες, έναν με τις αποστάσεις και έναν με τα indexes. Μετά όμως θα μπορώ να στείλω αυτούς τους πίνακες από το ένα process στο άλλο; Γενικά δίαβασα ότι δεν είναι σωστό να στέλνεις pointer σε mpi αφού κάθε process έχει την δικιά του μνήμη οπότε δεν έχει νόημα... Μήπως το σκέφτομαι τελείως λάθος και υπάρχει κάποιος πιο εύκολος τρόπος για να γίνει η επικοινωνία μεταξύ των processes;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 05, 2018, 19:09:14 pm
Μόνο με scanf θα διαβαζουμε, δε χρειάζεται να κανουμε χρήση των εντολών της mpi για Ι/Ο?

MPI_File_open
MPI_File_read
....

 >:(

Εγώ δε τα χρησιμοποίησα. Βασικά δεν ήξερα καν ότι υπάρχουν αυτά. Στο μάθημα δεν είπε κάτι οπότε υποθέτω είναι δικό σου θέμα αν θες να τα βάλεις.

Μπορεί κάποιος να μου πει τι θα πρέπει να στέλνουμε μεταξύ των processes; Εγώ σκέφτομαι ότι το κάθε process θα έχει ένα δισδιάστατο πίνακα με τα σημεία και τις διαστάσεις τους (δηλαδη τα δεδομένα) και αφού κληθεί η knn_search θα δημιουργεί δύο ακόμα δισδιάστατους πίνακες, έναν με τις αποστάσεις και έναν με τα indexes. Μετά όμως θα μπορώ να στείλω αυτούς τους πίνακες από το ένα process στο άλλο; Γενικά δίαβασα ότι δεν είναι σωστό να στέλνεις pointer σε mpi αφού κάθε process έχει την δικιά του μνήμη οπότε δεν έχει νόημα... Μήπως το σκέφτομαι τελείως λάθος και υπάρχει κάποιος πιο εύκολος τρόπος για να γίνει η επικοινωνία μεταξύ των processes;

Κάθε process στέλνει τα σημεία που έχει στο επόμενο process και παίρνει ένα πίνακα με νέα σημεία από το προηγούμενο.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 05, 2018, 19:29:05 pm
Γνωρίζει κανείς μέχρι πόσα CPU Cores μπορείς να ζητήσεις από τα clusters του HellasGrid; Γενικά μέχρι τους 30 πυρήνες τα jobs μου γίνονται scheduled σχεδόν άμεσα και τρέχουν. Οταν ζητάω 50-60 παραμένουν scheduled επί ώρες και τρώω και error.

Ειναι limit που θέτει ο workload managment server και ποιο είναι αυτό;

Έμαθες κάτι για αυτό; Ζητάω 24 πυρήνες για 8sec και δε μου τους δίνει :-X >:(


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: allstarabey on January 05, 2018, 21:49:04 pm
Quote
Κάθε process στέλνει τα σημεία που έχει στο επόμενο process και παίρνει ένα πίνακα με νέα σημεία από το προηγούμενο.

Και εγω αυτό σκεφτηκα
θα πρεπει να γινονται συνολικα -αν δεν κανω λαθος- numtasks  σε αριθμο αποστολες για να μετρηθουν οι αποστασεις ολων με ολων
η συνθηκη για να τελειωσει αυτη η συνεχης αποστολη ποια θα ειναι?


επισης ,καθε Process οταν τρεχει αν εχει μια μεταβλητη Κ αυτη για καθε process ειναι σε διαφορετικη θεση μνήμης ή ολα τα Processes αναφέρονται στην ίδια θέση μνήμης για αυτή τη μεταβλητή.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 05, 2018, 22:25:04 pm
Και εγω αυτό σκεφτηκα
θα πρεπει να γινονται συνολικα -αν δεν κανω λαθος- numtasks  σε αριθμο αποστολες για να μετρηθουν οι αποστασεις ολων με ολων
η συνθηκη για να τελειωσει αυτη η συνεχης αποστολη ποια θα ειναι?


επισης ,καθε Process οταν τρεχει αν εχει μια μεταβλητη Κ αυτη για καθε process ειναι σε διαφορετικη θεση μνήμης ή ολα τα Processes αναφέρονται στην ίδια θέση μνήμης για αυτή τη μεταβλητή.


Νομίζω είναι numtasks-1. Πχ για 6 processes το κάθε ένα έχει αρχικά 10000 σημεία και για να πάρει τα υπόλοιπα πρέπει να κάνει 5 receives. Δε χρειάζεται κάποιο περίπλοκο έλεγχο/σύστημα. Μπορείς να το υλοποιήσεις με μία απλή for(int part=0; part<numtasks-1; ++part).

Για τη μεταβλητή που ρωτάς, τελείως εμπειρικά, ναι είναι σε διαφορετική θέση. Δε ξέρω τι παίζει με τις global ή αυτές που έχουν δηλωθεί πριν το init.

Πόσο χρόνο σας παίρνει για όλα τα σημεία με k=60000 (και 16 processes);

Καμία ιδέα για τον έλεγχο των αποτελεσμάτων; Όταν τελειώσει ο αλγόριθμος αποθηκεύετε τα αποτελέσματα σε κάποιο αρχείο;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: allstarabey on January 06, 2018, 02:55:44 am
το task me rank =0 στελνει σε καθε task το μερος ενος πινακα.
μετα το καθε task στελνει το δικο του στους αλλους

η ερωτηση μου ειναι στο 2ο send receive απο τον καθενα προς τους αλλους
θελω να κανω πραξεις με το μερος του καθε πινακα που ειναι το ατομικο με αυτο που ερχεται από το άλλον
-αυτο που ερχεται απο το αλλο task Μπορει να αποθηκευτει καπως ετσι?

//παραδειγμα μεταξυ 2 task

int data [20] , data_received[5];
if ( rank ==0 ){

  MPI_Send(&data, 5, MPI_INT, 1, 0, MPI_COMM_WORLD);

}else{   
     
  MPI_Recv(&data_received,5, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
}

λογικα οχι ,απλα στερεψα απο ιδέες


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 06, 2018, 03:53:22 am
η κάθε διεργασία θα στέλνει μόνο στην επόμενη της και θα δέχεται από την προηγούμενη ή αντίστροφα, νομίζω έτσι ζητάει


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: WashAndGo on January 06, 2018, 18:47:41 pm
διαβάζουμε όλον τον πίνακα από το αρχείο και μετά δίνουμε κομμάτια του στο καθε procces ή το κάθε process διαβάζει από το αρχείο το κομμάτι που του αντιστοιχεί. Και αν το δεύτερο, τότε τι offset χρησιμοποιούμε;



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 06, 2018, 20:47:01 pm
το κάθε process διαβάζει μόνο τα σημεία που του αντιστοιχούν και αφού κάνει ότι είναι να κάνει για το knn τα στέλνει στο επόμενο process, όταν όλα τα block σημείων έχουν περάσει από όλα τα process έχεις τελειώσει με την αναζήτηση. δοκίμασε αυτό που έχει εδώ στην πρώτη απάντηση με το MPI I/O, εγώ έτσι το έχω και νομίζω δουλεύει σωστά
https://stackoverflow.com/questions/7603916/error-during-reading-and-writing-test-file-in-simple-mpi-code


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feoudarxhs on January 07, 2018, 16:45:33 pm
Έμαθες κάτι για αυτό; Ζητάω 24 πυρήνες για 8sec και δε μου τους δίνει :-X >:(

Εξαρτάται για ποιο πράγμα ρωτάς.

Επειδή το έψαξα για λόγους περιέργειας, οι κόμβοι πάνω στο HellasGrid έχουν ο καθένας τα δικά του limit. Δηλαδή αν εγώ στο .jdl δηλώσω ότι θέλω 128 CPUs, η glite-wms-job-match-list θα μου δείξει απλά ποιος κόμβος αναφέρεται με τόσα CPUs (ότι το cluster από πίσω δηλαδή έχει τόσους πυρήνες). Το πρόβλημα είναι ότι διαφορετικός αριθμός CPUs είναι δηλωμένος συνολικά και διαφορετικός αριθμός CPUs (ένα μέρος του cluster μόνο), χρησιμοποιείται για τις ανάγκες του HellasGrid. Δηλαδή μπορεί μεν να επιλέξω να τα στείλω στο cluster του AΠΘ το οποίο το βγάζει με 500 cores, το submit θα γίνει, αλλά στα αποτελέσματα θα λάβω error.

Τώρα για την τοπική υποβολή στο cluster του ΑΠΘ (μέσω του μηχανισμού qsub), τα resources εξαρτώνται από την queue στην οποία βρίσκεσαι. Μπορείς να δεις τι έχει η κάθε queue χρησιμοποιώντας την "qsub -Qf <queue_name>". Απ' ότι είδα όμως για τον τρόπο λειτουργίας του scheduler, τουλάχιστον όπως χρησιμοποιείται σε άλλα clusters για τα οποία βρήκα αρκετό υλικό και υποθέτω πως ανάλογα χρησιμοποιείται και στα cluster του ΑΠΘ, το scheduling εξαρτάται από:
  • 1. Χρόνος που έχεις χρησιμοποιήσει ως χρήστης γενικά το cluster.
  • 2. Resources που ζητάς.
  • 3. Balance των resources που ζητάς. Αν έχεις αρνητικό balance πάει αρκετά πίσω, δίχως για την ώρα να μπορώ να σου απαντήσω με βάση ποιον αλγόρθμο υπολογίζεται.
  • 4. Walltime που ζητάς.
Με βαρύτητα τη σειρά με την οποία τα γράφω.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 08, 2018, 17:48:23 pm

Αναλυτικότατος! Ευχαριστώ. Τελικά (μάλλον) ήταν το θέμα του cluster που ανέφερε και ο Φλώρος στην ανακοίνωση για τη παράταση και για αυτό δε μου έδινε. Πλέον μπορώ να τρέξω σε 32 πυρήνες.

Από χρόνο πως πάτε; Έχω την εντύπωση ότι ο κώδικάς μου τρέχει πολύ αργά.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 08, 2018, 21:44:29 pm
Εγώ δε προλαβαίνω καν να το τρέξω, με πετάει το wallclock όσες φορές δοκίμασα με 20 πυρήνες και κάτω... θα δοκιμάσω και με 32!
εδιτ: τελικά έπρεπε να βάλω μεγαλύτερο wallclock στο PBS, έτρεξε!!
220-280 sec στους 30 πυρήνες, εσείς πόσο είστε?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: feoudarxhs on January 09, 2018, 16:18:49 pm
Μέχρι πόσους πυρήνες θέλει μέτρηση για το μάθημα; 32 ή παραπάνω;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 09, 2018, 20:38:44 pm
Εγώ δε προλαβαίνω καν να το τρέξω, με πετάει το wallclock όσες φορές δοκίμασα με 20 πυρήνες και κάτω... θα δοκιμάσω και με 32!
εδιτ: τελικά έπρεπε να βάλω μεγαλύτερο wallclock στο PBS, έτρεξε!!
220-280 sec στους 30 πυρήνες, εσείς πόσο είστε?

Εγώ μετράω σε ώρες :(
Και φαίνεται να είναι όλα στον υπολογισμό των αποστάσεων, τι μπορεί να κάνω τόσο χάλια εκεί;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 09, 2018, 21:42:48 pm
Εγώ μετράω σε ώρες :(
Και φαίνεται να είναι όλα στον υπολογισμό των αποστάσεων, τι μπορεί να κάνω τόσο χάλια εκεί;
ώρες για σένα ή για το hellasgrid? εγώ μετράω την κανονική ώρα όχι την υπολογιστική
εμένα θέλει περίπου 2 ώρες στο hellasgrid


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 09, 2018, 22:28:45 pm
ώρες για σένα ή για το hellasgrid? εγώ μετράω την κανονική ώρα όχι την υπολογιστική
εμένα θέλει περίπου 2 ώρες στο hellasgrid

Δυστυχώς μιλάω για κανονικές ώρες.. Τον πίνακα με τις αποστάσεις τον ταξινομείς; Και αν ναι πως, qsort ή σε κάθε προσθήκη σπρώχνεις τα υπόλοιπα στοιχεία πιο κάτω στον πίνακα;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: mtzikara on January 09, 2018, 22:36:41 pm
Έλεγχο ορθότητας πώς κάνετε;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 09, 2018, 22:53:50 pm
Δυστυχώς μιλάω για κανονικές ώρες.. Τον πίνακα με τις αποστάσεις τον ταξινομείς; Και αν ναι πως, qsort ή σε κάθε προσθήκη σπρώχνεις τα υπόλοιπα στοιχεία πιο κάτω στον πίνακα;
Κάθε φορά που βρίσκω τις αποστάσεις ενός σημείου με τα υπόλοιπα ταξινομώ αυτή τη σειρα με qsort. Αλλά κάθε φορά βρίσκω τις αποστάσεις ενός σημείου με ένα κομμάτι τον υπολοίπων όχι με όλα ταυτόχρονα, δε ξέρω αν βοηθάει ίσως να είναι και πιο αργό, ίδια τεχνική σαν αυτό που γίνεται παράλληλα αλλά στον ίδιο πυρήνα. Γίνοντε αρκετές χιλιάδες qsort αλλά σε πολύ μικρούς πίνακες.
Πάντως σιγουρέψου ότι τα send και receive γίνονται σωστά, ίσως να κολάει εκεί, περίεργο να θέλει τόσες ώρες.

Έλεγχο ορθότητας πώς κάνετε;
ούτε εγώ έχω βρεί πως να το κάνω αυτό


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 10, 2018, 00:45:48 am
Κάθε φορά που βρίσκω τις αποστάσεις ενός σημείου με τα υπόλοιπα ταξινομώ αυτή τη σειρα με qsort. Αλλά κάθε φορά βρίσκω τις αποστάσεις ενός σημείου με ένα κομμάτι τον υπολοίπων όχι με όλα ταυτόχρονα, δε ξέρω αν βοηθάει ίσως να είναι και πιο αργό, ίδια τεχνική σαν αυτό που γίνεται παράλληλα αλλά στον ίδιο πυρήνα. Γίνοντε αρκετές χιλιάδες qsort αλλά σε πολύ μικρούς πίνακες.
Πάντως σιγουρέψου ότι τα send και receive γίνονται σωστά, ίσως να κολάει εκεί, περίεργο να θέλει τόσες ώρες.
ούτε εγώ έχω βρεί πως να το κάνω αυτό

Ευχαριστώ πολύ για τις απαντήσεις :D


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: mtzikara on January 10, 2018, 15:27:24 pm
Μου απάντησε ο Φλώρος για τον ελεγχο των αποτελεσμάτων, να γινει με τον πίνακα index απο το matlab


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 10, 2018, 15:30:03 pm
Μου απάντησε ο Φλώρος για τον ελεγχο των αποτελεσμάτων, να γινει με τον πίνακα index απο το matlab
το label μήπως? δε βλέπω κανένα άλλο
ή τα αποτελέσματα που βγάζει το matlab?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 10, 2018, 17:56:40 pm
το label μήπως? δε βλέπω κανένα άλλο
ή τα αποτελέσματα που βγάζει το matlab?

Το label είναι η ετικέτα της "κλάσης" στο οποίο ανήκει το σημείο και δεν είναι μοναδική. Πολλά σημεία ανήκουν στην 3, αλλα στη κλάση 6 κοκ. Στην προκειμένη περίπτωση, για την εκτέλεση του KNN δεν μας αφορά.

Το index μπορεί να αξιοποιηθεί ως μοναδική ταυτότητα του κάθε σημείου, με αποτέλεσμα να μπορεί κανεις να συγκρίνει αν τα αποτελέσματα των KNN σημείο-προς-σημείο, χωρίς να μπαίνει στην διαδικασία να συγκρίνει και να αποθηκεύει τις ίδιες τις συντεταγμένες του σημείου

EDIT: Τα Indeces και Dist είναι η έξοδος του knn του matlab, οπότε βγάζει νόημα να φτιάξετε το knn με αυτό το πρότυπο ωστέ να τα συγκρίνεται τσακ-μπαμ


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 10, 2018, 18:01:25 pm
Μπορεί κανένας να δώσει ένα χέρι βοήθειας με τα jobs στο Hellasgrid?

Δεν το έχω καταφέρει να τρέξει...

Το σφάλμα μου είναι
Code:
[mpiexec@wn019.grid.auth.gr] verify_arguments (./ui/mpiexec/utils.c:1110): no executable specified
[mpiexec@wn019.grid.auth.gr] HYD_uii_mpx_get_parameters (./ui/mpiexec/utils.c:1290): argument verification failed

αλλά δεν μπορώ να εξακριβώσω το γιατί (έχω δοκιμασει και με το Μpi-start-wrapper.sh και με την mpiexec)


 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 11, 2018, 02:16:33 am
Τι σκριπτ βάζεις στο qsub? Εγώ αυτό έχω και δουλεύει. Έχεις το script.sh και το executable και κάνεις "qsub script.sh".
Quote
#!/bin/bash
#PBS -q pdlab
#PBS -N mpi-mm
#PBS -j oe
#PBS -l nodes=1:ppn=30,walltime=04:00:00

module load openmpi
cd $PBS_O_WORKDIR

mpiexec -np $PBS_NP ./arxio


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 11, 2018, 02:35:56 am
Τι σκριπτ βάζεις στο qsub? Εγώ αυτό έχω και δουλεύει. Έχεις το script.sh και το executable και κάνεις "qsub script.sh".

Και εγώ το γύρισα στη πιο απλή μορφή και μου ψιλο-δουλεύει τώρα... (τρέχει αλλά δεν ανοίγει το αρχείο. Κάτι τρέχει με τα paths). ΤΟ script είναι ίδιο με το δικό σου

Παίζει να ξες τη φάση με το PBS_WORKDIR? Γιατί δεν καταλαβαίνω πως προκύπτει και από που έρχεται.

Νομίζω πως αν καταλάβω αυτό την έχω κάνει ταράτσα


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Argirios on January 11, 2018, 02:47:44 am
Και εγώ το γύρισα στη πιο απλή μορφή και μου ψιλο-δουλεύει τώρα... (τρέχει αλλά δεν ανοίγει το αρχείο. Κάτι τρέχει με τα paths). ΤΟ script είναι ίδιο με το δικό σου

Παίζει να ξες τη φάση με το PBS_WORKDIR? Γιατί δεν καταλαβαίνω πως προκύπτει και από που έρχεται.

Νομίζω πως αν καταλάβω αυτό την έχω κάνει ταράτσα
Το PBS_WORKDIR νομίζω είναι το path από όπου έτρεξες το qsub. Δε το έψαξα και πολύ, τα έβαλα όλα στο home/argirios και τα έτρεξα από εκεί, χωρίς φακέλους και τέτοια.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 11, 2018, 02:56:01 am
Το PBS_WORKDIR νομίζω είναι το path από όπου έτρεξες το qsub. Δε το έψαξα και πολύ, τα έβαλα όλα στο home/argirios και τα έτρεξα από εκεί, χωρίς φακέλους και τέτοια.


αααμ... ΑΑΑΑΑΑΑΑΑΑΑΑ!

θενξ!  :D :D


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dinis on January 12, 2018, 17:09:37 pm
Αν κατάλαβε κάποιος ας μου διευκρινίσει την εξής απορία:

Κάθε process έστω ότι θα λαμβάνει 100 x 30 σημεία και θα υπολογίζει για το καθένα τα Κ κοντινότερα του (γ' αυτά τα 100), και τα αποθηκεύει στις αντίστοιχες θέσεις σ' έναν πίνακα KNN[60.000][K].
Μετά θα στέλνει αυτόν τον πίνακα στο επόμενο process και θα συμπληρώνει τα δικά του σημεία στον πίνακα αυτόν ?

Αν είναι έτσι τότε το σημείο 1 αν βρίσκεται ποιο κοντά με το σημείο 101 (το οποίο θα το έχει λάβει το επόμενο process για επεξεργασία) δεν θα βρίσκεται κάπου  μέσα στον πίνακα ΚΝΝ ενώ θα έπρεπε.

Αυτό συμπέρανα απ την αναφορά και δεν μου φαίνεται σωστό.  :o


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 12, 2018, 18:39:12 pm
Αν κατάλαβε κάποιος ας μου διευκρινίσει την εξής απορία:

Κάθε process έστω ότι θα λαμβάνει 100 x 30 σημεία και θα υπολογίζει για το καθένα τα Κ κοντινότερα του (γ' αυτά τα 100), και τα αποθηκεύει στις αντίστοιχες θέσεις σ' έναν πίνακα KNN[60.000][K].
Μετά θα στέλνει αυτόν τον πίνακα στο επόμενο process και θα συμπληρώνει τα δικά του σημεία στον πίνακα αυτόν ?

Αν είναι έτσι τότε το σημείο 1 αν βρίσκεται ποιο κοντά με το σημείο 101 (το οποίο θα το έχει λάβει το επόμενο process για επεξεργασία) δεν θα βρίσκεται κάπου  μέσα στον πίνακα ΚΝΝ ενώ θα έπρεπε.

Αυτό συμπέρανα απ την αναφορά και δεν μου φαίνεται σωστό.  :o

Όχι όχι:

Κάθε Process έχει ένα τοπικό dataSet X[100,30] ,και ένα dataSet που λαμβάνει/στέλνει από κάποιο άλλο process Xr, έστω διαστάσεων [120,30].

1) Υπολογίζεις KNN για το X ως προς το Xr -> KNN: [100: 5] (5 = k του knn)
2) Κάνεις Merge τον πίνακα KNNtemp με τον KNN. Κρατάς τα πρώτα Κ και από τους δύο.

Αυτά που στέλνεις είναι τα datasets (τα X). Όχι τους γείτονες.
Το  δεύτερο δεν είναι άσχημη ιδέα βέβαια. Αν γίενι σωστά παίζει να έχει καλά πλεονεκτήματα... αλλά σίγουρα αρκετά πιο μπελαλίδικο όμως για να γίνει σωστά


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: dinis on January 12, 2018, 20:41:32 pm
Όχι όχι:

Κάθε Process έχει ένα τοπικό dataSet X[100,30] ,και ένα dataSet που λαμβάνει/στέλνει από κάποιο άλλο process Xr, έστω διαστάσεων [120,30].

1) Υπολογίζεις KNN για το X ως προς το Xr -> KNN: [100: 5] (5 = k του knn)
2) Κάνεις Merge τον πίνακα KNNtemp με τον KNN. Κρατάς τα πρώτα Κ και από τους δύο.

Αυτά που στέλνεις είναι τα datasets (τα X). Όχι τους γείτονες.
Το  δεύτερο δεν είναι άσχημη ιδέα βέβαια. Αν γίενι σωστά παίζει να έχει καλά πλεονεκτήματα... αλλά σίγουρα αρκετά πιο μπελαλίδικο όμως για να γίνει σωστά

Oκ κατάλαβα, ευχαριστώ !  ;)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 12, 2018, 20:51:27 pm
Κάθε Process έχει ένα τοπικό dataSet X[100,30] ,και ένα dataSet που λαμβάνει/στέλνει από κάποιο άλλο process Xr, έστω διαστάσεων [120,30].

Το κομμάτι του dataset που έχει το κάθε process έχει ίδιες διαστάσεις με τα κομμάτια που λαμβάνει. Αυτό περιορίζει και τον αριθμό των processes σε σχέση με το dataset (πρέπει το dataset να είναι διαιρέσιμο από τον αριθμό των processes).

Αυτό κατάλαβα εγώ από αυτά που είχε πει ο Φλώρος στο μάθημα και τις συζητήσεις τις τελευταίες μέρες.

Πχ για 3 processes τα σημεία θα κοπούν σε στους υποπίνακες A, B, C, ο καθένας με διαστάσεις 20,000Χ30. Το process P0 διαβάζει το A, το P1 το B και το P2 το C. Κάθε process φτιάχνει ένα πίνακα DIST 20,000Χ60,000 ανεξάρτητα από το k που έχει ζητήσει ο χρήστης.

Αρχικά κάθε process βρίσκει τις αποστάσεις για τους πρώτους 20,000 γείτονες με βάση το δικό του υποπίνακα (A, B ή C) και τις βάζει αταξινόμητες στον δικό του στον πίνακα DIST.

Έπειτα το P0 παίρνει το C από τον P2 και στέλνει το A στον P1. Ομοίως το P1 παίρνει το A και στέλνει το B και το P2 παίρνει το B και στέλνει το C. Καθένα ανανεώνει τον DIST με τα νέα σημεία που έχει. Αυτό γίνεται άλλη μία φορά, οπότε κάθε process έχει συμπληρώσει τον πίνακα DIST του.

Τέλος γίνεται ταξινόμηση σε κάθε γραμμή των DIST.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 12, 2018, 21:46:08 pm
Το κομμάτι του dataset που έχει το κάθε process έχει ίδιες διαστάσεις με τα κομμάτια που λαμβάνει. Αυτό περιορίζει και τον αριθμό των processes σε σχέση με το dataset (πρέπει το dataset να είναι διαιρέσιμο από τον αριθμό των processes).


Άμα δεν διαιρείτε τέλεια το dataset με τον αριθμό των Processes, υπάρχει ένα μικρό πλήθος από datapoints στο οποία θα διαφέρει το dataset.

Είναι λεπτομέρεια, αλλά εγώ το υλοποίησα σε κάθε περίπτωση να λαμβάνει δυναμικά μνμτα αγνώστου μεγέθους.

Παρόλαυτά ναι το μέγεθος του κάθε sub-dataset θα είναι λίγο πολύ ίδιου μεγέθους...


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Apostolof on January 12, 2018, 22:01:47 pm
Άμα δεν διαιρείτε τέλεια το dataset με τον αριθμό των Processes, υπάρχει ένα μικρό πλήθος από datapoints στο οποία θα διαφέρει το dataset.

Είναι λεπτομέρεια, αλλά εγώ το υλοποίησα σε κάθε περίπτωση να λαμβάνει δυναμικά μνμτα αγνώστου μεγέθους.

Παρόλαυτά ναι το μέγεθος του κάθε sub-dataset θα είναι λίγο πολύ ίδιου μεγέθους...

Ακριβώς. Για αυτό το είπα, για να μη χρειάζεται αυτή η δουλειά. Ήταν στα ζητούμενα;
Btw πως το έκανες; Στέλνεις πρώτα το μέγεθος και μετά το dataset;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: Goemon on January 13, 2018, 06:32:49 am
Ακριβώς. Για αυτό το είπα, για να μη χρειάζεται αυτή η δουλειά. Ήταν στα ζητούμενα;
Btw πως το έκανες; Στέλνεις πρώτα το μέγεθος και μετά το dataset;

Υπάρχουν δύο τρόποι να το κάνεις.

1) Να ορίζεις ένα μαξ μέγεθος μνμτος, να το λάβεις, και στο τέλος να μάθεις το πραγματικό του μέγεθος μέσω του Status

2) Να ρωτήσεις το μέγεθος του μνμτος με το MPI_Probe (προσοχή: blocking op).

kai 3 (τετριμμενη) στέλνεις μέγεθος σε ξεχωριστό μνμ


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Εργασία 2 - 2017
Post by: johnvoyager on January 15, 2018, 00:52:55 am
παίδες, το σειριακό πως το τρέχετε ?

σε εμένα βγάζει segmentation fault όταν βάζω και τα 60000 σημεία (  για λιγότερα τρέχει )

μου βγάζει αυτά
Code:
gcc -O3  -std=c99 serKnn.c -o serKnn.out
./serKnn.out
make: *** [run] Segmentation fault (core dumped)
το makefile μου είναι αυτό :
Code:
SOURCE = serKnn


all:
make run

$(SOURCE).out: $(SOURCE).c
gcc -O3  -std=c99 $< -o $(SOURCE).out

run: $(SOURCE).out
./$(SOURCE).out

clean:
rm -f *~ *.out

και το pbs
Code:
#!/bin/bash
#PBS -N resultsjob
#PBS -q pdlab
#PBS -j oe
#PBS -l nodes=1:ppn=1,walltime=00:40:00



cd $PBS_O_WORKDIR

make run

και το τρέχω με qsub ,  καλά κάνω ??

εδιτ: βασικά όταν λέμε σειριακό, εννοούμε ότι βγάζουμε τελείως τα MPI έτσι ? δεν είναι ότι τρέχουμε MPI απλά για ένα node, σωστά? γιατί εγώ αυτή την στιγμή σαν σειριακό τρέχω μια έκδοση χωρίς καθόλου MPI