THMMY.gr

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



Title: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Gaara on November 03, 2015, 22:29:00 pm
έκανε κάποιος επιτυχώς compile cilk με τον icc στο diades?

Παίρνω το παρακάτω από έτοιμο παράδειγμα:

Catastrophic error: could not set locale "" to allow processing of multibyte characters

compilation aborted for cilkb.c (code 4)

και η παρακάτω ομορφιά από verbose

Version 10.1
/opt/intel/cce/10.1.018/bin/mcpcom    -_g -mP3OPT_inline_alloca -D__HONOR_STD -D__ICC=1010 -D__INTEL_COMPILER=1010 -D_MT "-_Asystem(unix)" -D__ELF__ "-_Acpu(x86_64)" "-_Amachine(x86_64)" -D__INTEL_COMPILER_BUILD_DATE=20080801 -D__PTRDIFF_TYPE__=long "-D__SIZE_TYPE__=unsigned long" -D__WCHAR_TYPE__=int "-D__WINT_TYPE__=unsigned int" "-D__INTMAX_TYPE__=long int" "-D__UINTMAX_TYPE__=long unsigned int" -D__QMSPP_ -D__OPTIMIZE__ -D__NO_MATH_INLINES -D__NO_STRING_INLINES -D__GNUC__=4 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=2 -D__NO_INLINE__ -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ -D__pentium4 -D__pentium4__ -D__SSE2__ -D__tune_pentium4__ -D__MMX__ -D__SSE__ -D__LP64__ -D_LP64 -D__pentium4 -D__pentium4__ -D__SSE2__ -D__MMX__ -D__SSE__ -D__tune_pentium4__ -D__GXX_ABI_VERSION=1002 "-D__USER_LABEL_PREFIX__= " -D__REGISTER_PREFIX__= -D__INTEL_RTTI__ -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -B -Dunix -Dlinux -D__x86_64 -D__x86_64__ -_8 -D__LONG_MAX__=9223372036854775807L -_l -_b --gnu_version=412 -_W5 --gcc-extern-inline --mspp --multibyte_chars --fp_speculation=GLOB_FP_SPECULATION_FAST --eh_nirvana -mP1OPT_version=1010 -mP1OPT_print_version=FALSE -mP3OPT_use_mspp_call_convention -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_options_string=-v -mGLOB_cxx_limited_range=FALSE -mP2OPT_eh_nirvana -mGLOB_diag_file=/tmp/iccTaiL9a.diag -mGLOB_as_output_backup_file_name=/tmp/iccMjTbEYas_.s -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 -mGLOB_fp_speculation=GLOB_FP_SPECULATION_FAST -mGLOB_extended_instructions=0x8 -mIPOPT_ninl_user_level=2 -mIPOPT_args_in_regs=0 -mPGOPTI_value_profile_use=T -mIPOPT_activate -mIPOPT_lite -mP2OPT_hlo_level=2 -mP2OPT_hlo -mPAROPT_par_report=1 -mCG_emit_as_seg_grouping -mIPOPT_obj_output_file_name=/tmp/iccTaiL9a.o "-mGLOB_linker_version=2.17.50.0.6-26.el5 20061020" -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_obj_output_file=/tmp/iccTaiL9a.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C -mP1OPT_source_file_name=cilkb.c cilkb.c
#include "..." search starts here:
#include <...> search starts here:
 /share/apps/intel/mkl/8.0.2/include
 /share/apps/intel/ipp/5.3.3.075/em64t/include
 /opt/intel/mkl/10.0.3.020/include
 /opt/intel/cce/10.1.018/include
 /opt/intel/cce/10.1.018/substitute_headers
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
 /usr/local/include
 /usr/include
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
End of search list.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Exomag on November 03, 2015, 22:35:33 pm

Στείλε ένα mail στον Σισμάνη (μαζί με το error). Πέρυσι όταν είχα προβλήματα με compile/execute αυτός με βοήθησε.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Xbaremenos on November 09, 2015, 00:39:58 am
Κανένα ΤΕΡΑΣΤΙΟ παλικάρι που κατάφερε να βαλει CilkPlus σε Λινουξ ?
 
Έχω δοκιμάσει αρκετά πράγματα και ολα σκαλώνουν κάπου ....



Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: nikos1 on November 09, 2015, 17:14:06 pm
ουτε σε linux ουτε σε windows... παντου πρβληματα


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: c0ndemn3d on November 09, 2015, 19:00:32 pm
Έχει κάτι οδηγίες στο topic της εργασίας από τον Κηπουρίδη για το diades συγκεκριμένα, αλλά και για το δικό σας σύστημα παρόμοια θα είναι υποθέτω...


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Xbaremenos on November 09, 2015, 22:40:36 pm
Ωραία, μετά απο πολύ κόπο τα κατάφερα ...

Ακολουθόντας πιστά τις οδηγίες εδώ : https://www.cilkplus.org/build-gcc-cilkplus      που ανέβασε ο Κηπουρίδης στο άλλο θρεντ..

Σχόλια : Υπάρχει περίπτωση κατά τη διαδικασία make (η οποια κράτησε σε μένα ~4 ώρες) να εμφανιστούν προβλήματα του τύπου #include <.......> not found
Απλα ψάχνουμε που ανήκει αυτο το header και κάνουμε purge και ξανα απο την αρχή install .....

Ελπίζω να βοηθήσα ...


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Nerevar on November 15, 2015, 12:49:32 pm
Σχόλια : Υπάρχει περίπτωση κατά τη διαδικασία make (η οποια κράτησε σε μένα ~4 ώρες) να εμφανιστούν προβλήματα του τύπου #include <.......> not found
Απλα ψάχνουμε που ανήκει αυτο το header και κάνουμε purge και ξανα απο την αρχή install .....

Λίγο αργά για την πρώτη εργασία αλλά χρήσιμο για όσους βάλουν cilk στο μέλλον.Για να λειτουργήσει το make με την πρώτη,τρέξτε uname -m,και εφόσον επιστρέψει x86_64,κατεβάστε το πακέτο libc6-dev-i386 με apt-get install.

(τουλάχιστον σε εμένα δεν εβγαλε error παρά μόνο την πρώτη φορά,πριν το κατέβασμα του πακέτου)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Ser Harry Man on November 05, 2016, 14:51:48 pm
Εμένα σε cygwin μου έβγαλε το εξής :

output.o: In function `output_constant':
/home/octree-Cilk/cilk-5.4.6/cilk2c/output.c:629: undefined reference to `PrintChar'
/home/octree-Cilk/cilk-5.4.6/cilk2c/output.c:629:(.text+0x193b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `PrintChar'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:288: cilk2c.exe] Error 1
make[2]: Leaving directory '/home/octree-Cilk/cilk-5.4.6/cilk2c'
make[1]: *** [Makefile:263: all-recursive] Error 1
make[1]: Leaving directory '/home/octree-Cilk/cilk-5.4.6'
make: *** [Makefile:193: all] Error 2


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: lodi on November 05, 2016, 20:06:21 pm
ακολούθησες πιστά το λινκ https://software.intel.com/en-us/qualify-for-free-software/student ?
χωρίς να ασχοληθώ με αυτό λινκ να πω ότι πλέον είναι και διαθέσιμο δωρεάν από την ιντελ αν πατήσεις ότι είσαι student , έχει και για linux και για windows . εμένα σε λίνουξ εγκαταστάθηκε επιτυχώς. δεν το έτρεξα βέβαια και πολύ έπειτα άλλα όλα δείχνουν κομπλέ.
η ιστοσελίδα για την intel είναι αυτήν :
https://software.intel.com/en-us/qualify-for-free-software/student
το Intel® Parallel Studio XE Cluster Edition (includes Fortran and C/C++) .


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: PaVou on November 10, 2016, 14:54:54 pm
Στο diades με icpc compiler δεν βρίσκει τα headers <cilk/cilk.h>.

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


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Aristos on November 11, 2016, 21:29:20 pm
 
Quote
Για να χρησιμοποιήσετε cilk, προσθέστε την παρακάτω γραμμή στο τέλος του αρχείου ~/.bash_profile:

source /export/opt/intel/bin/iccvars.sh intel64

από ethmmy. το έκανες αυτό;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Kthulu on November 12, 2016, 01:42:51 am
ακολούθησες πιστά το λινκ https://software.intel.com/en-us/qualify-for-free-software/student ?
χωρίς να ασχοληθώ με αυτό λινκ να πω ότι πλέον είναι και διαθέσιμο δωρεάν από την ιντελ αν πατήσεις ότι είσαι student , έχει και για linux και για windows . εμένα σε λίνουξ εγκαταστάθηκε επιτυχώς. δεν το έτρεξα βέβαια και πολύ έπειτα άλλα όλα δείχνουν κομπλέ.
η ιστοσελίδα για την intel είναι αυτήν :
https://software.intel.com/en-us/qualify-for-free-software/student
το Intel® Parallel Studio XE Cluster Edition (includes Fortran and C/C++) .
Μου βγαζει error κατα τν εγκατασταση στα Windows 64 bit. Εγινε σε κανεναν το ιδιο;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Ancient on November 12, 2016, 19:58:20 pm
Βρέθηκε η λύση -  κάντε ξανα εγκατάσταση cygwin, search keyword "cilk" και εγκαταστείστε τα πακέτα που βγάζει.

Τρέξτε το πρόγραμμα με g++ -fcilkplus και τέλος. Ούτε διάδηδες ούτε τίποτα.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: fibonacci on November 12, 2016, 20:57:12 pm
Βρέθηκε η λύση -  κάντε ξανα εγκατάσταση cygwin, search keyword "cilk" και εγκαταστείστε τα πακέτα που βγάζει.

Τρέξτε το πρόγραμμα με g++ -fcilkplus και τέλος. Ούτε διάδηδες ούτε τίποτα.

Στο Makefile τι αλλαγές έκανες ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Ancient on November 12, 2016, 21:08:02 pm
Στο Makefile τι αλλαγές έκανες ;

έβαλα πάνω g++ -O4 -fcilkplus


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: maro on November 14, 2016, 18:51:09 pm

από ethmmy. το έκανες αυτό;


στο τέλος ποιανού αρχείου θα μπει αυτό?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Aristos on November 14, 2016, 19:04:23 pm
Quote
  ...στο τέλος του αρχείου ~/.bash_profile

τι δε κατάλαβες ακριβώς; το ~/ σημαίνει στον home folder σου. πάντα μιλάμε για διάδη. το αρχείο είναι χιντεν αλλά μπορείς να το ανοίξεις κανονικά με νανο


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: ReMi0s on November 14, 2016, 19:05:11 pm
στην cilk μπορούμε να ορίσουμε εμείς για πόσα thread θα διαμειράσει τις for?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: ditroo on November 14, 2016, 19:49:47 pm
υπάρχει κάποιος κανονισμός για το πως γράφουμε μέσα στο Makefile, ώστε να τρέξει η υλοποίηση της cilk στο διάδη??   :-\ :-\


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: airpap on November 14, 2016, 20:42:55 pm
τελικα με ποια εντολη εκτελείται προγραμμα φτιαγμένο με cilk?? (στο diades)


icc (what?)....





Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Aristos on November 14, 2016, 20:51:55 pm
το icc αρκεί από μόνο του για τη cilk. πιθανώς όμως να θέλετε να ορίσετε και το στανταρ της γλώσσας με βάση το οποίο θα γίνει το compile. εγώ θα πρότεινα το gnu99 γιατί αυτό είχε ο πιτσιανης στο makefile που έδινε. τότε η εντολή γίνεται

icc -std=gnu99 ...

(πάντα με την προϋπόθεση πως έχετε κάνει την προσθήκη που περιγράφεται στο ethmmy στο .bash_profile)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: airpap on November 14, 2016, 21:01:42 pm
το icc αρκεί από μόνο του για τη cilk. πιθανώς όμως να θέλετε να ορίσετε και το στανταρ της γλώσσας με βάση το οποίο θα γίνει το compile. εγώ θα πρότεινα το gnu99 γιατί αυτό είχε ο πιτσιανης στο makefile που έδινε. τότε η εντολή γίνεται

icc -std=gnu99 ...

(πάντα με την προϋπόθεση πως έχετε κάνει την προσθήκη που περιγράφεται στο ethmmy στο .bash_profile)

δεν αναγνωριζει την βιβλιοθηκη cilk/cilk.h


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: ReMi0s on November 15, 2016, 00:59:35 am
Αυτό που λέει στο ethmmy απλουστευμένα:
αφού κάνεις login στον diadh πατα
nano .bash_profile

έπειτα σου ανοίγει αυτό το αρχείο και στο τέλος του βάζεις
source /export/opt/intel/bin/iccvars.sh intel64

αποθηκεύεις και έξω.

ωστόσο εμένα δεν βρίσκει τις βιβλιοθήκες

κάνεις exit απο diades Και ξανα Loggareis για να τρεξει το αρχειο αυτο αυτόματα
έπειτα μπορείς να τρέξεις cilk βάζοντας στο makefile GCC=icc  -lcilkrts -ldl -O3  
αντι για αυτο που έχει


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: airpap on November 15, 2016, 16:21:54 pm
Αυτό που λέει στο ethmmy απλουστευμένα:
αφού κάνεις login στον diadh πατα
nano .bash_profile

έπειτα σου ανοίγει αυτό το αρχείο και στο τέλος του βάζεις
source /export/opt/intel/bin/iccvars.sh intel64

αποθηκεύεις και έξω.

ωστόσο εμένα δεν βρίσκει τις βιβλιοθήκες

κάνεις exit απο diades Και ξανα Loggareis για να τρεξει το αρχειο αυτο αυτόματα
έπειτα μπορείς να τρέξεις cilk βάζοντας στο makefile GCC=icc  -lcilkrts -ldl -O3  
αντι για αυτο που έχει


cil.c(2): catastrophic error: could not open source file "cilk/cilk.h"
  #include<cilk/cilk.h>
                       ^


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: gkyriazt on October 13, 2017, 14:16:30 pm
Quote
Για να χρησιμοποιήσετε cilk, προσθέστε την παρακάτω γραμμή στο τέλος του αρχείου ~/.bash_profile:

source /export/opt/intel/bin/iccvars.sh intel64

Αρα παίδες αυτή η γραμμή που λέει ο Σισμάνης στο ethmmy θα μας χρείαστει αν θέλουμε να τρέξουμε το πρόγραμμά μας στο diades (σύστημα του Πιτσιάνη αν κατάλαβα καλά) και ΟΧΙ κατά την εγκατάσταση προγραμμάτων (Cilk κτλ) στον υπολογιστή μας..


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: ReMi0s on October 13, 2017, 14:19:37 pm
Αρα παίδες αυτή η γραμμή που λέει ο Σισμάνης στο ethmmy θα μας χρείαστει αν θέλουμε να τρέξουμε το πρόγραμμά μας στο diades (σύστημα του Πιτσιάνη αν κατάλαβα καλά) και ΟΧΙ κατά την εγκατάσταση προγραμμάτων (Cilk κτλ) στον υπολογιστή μας..
Δεν θυμάμαι καλά αλλά μάλλον έτσι όπως το λες είναι. Ίσως για τον υπολογιστή σου να χρειαστεί άλλη διαδρομή για την βιβλιοθήκη αν δεν την βρίσκει


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: BIC on October 24, 2017, 11:12:05 am
Ακολουθώντας τις οδηγίες στο https://www.cilkplus.org/build-gcc-cilkplus κατά τη διαδικασία του make μου βγάζει αυτό το error:

checking target system type... x86_64-unknown-linux-gnu
checking LIBRARY_PATH variable... contains current directory
configure: error:
*** LIBRARY_PATH shouldn't contain the current directory when
*** building gcc. Please change the environment variable
*** and run configure again.
Makefile:3965: recipe for target 'configure-stage1-gcc' failed
make[2]: *** [configure-stage1-gcc] Error 1
make[2]: Leaving directory '/home/username/b-gcc'
Makefile:21970: recipe for target 'stage1-bubble' failed
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory '/home/username/b-gcc'
Makefile:894: recipe for target 'all' failed
make: *** [all] Error 2

Μπορεί να βοηθήσει κάποιος?


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: fcdimitr on October 24, 2017, 13:49:43 pm
Άνοιξε forum στο e-learning για ερωτήσεις στο μάθημα/εργασίες, το οποίο θα παρακολουθούν και οι διδάσκοντες, για να λύνουν απορίες.

https://elearning.auth.gr/mod/forum/view.php?id=351278


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Argirios on October 26, 2017, 15:48:49 pm
To cilk είναι το ίδιο με το cilk plus? Γιατί μόνο cilk plus βρίσκω για windows.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Ancient on October 26, 2017, 16:15:56 pm
To cilk είναι το ίδιο με το cilk plus? Γιατί μόνο cilk plus βρίσκω για windows.

Αν χρησιμοποιείς cygwin, κάνε απλώς εγκατάσταση τα πακέτα που εμφανίζονται αν κάνεις search "cilk". Δε χρειάζεται να κάνεις κάτι άλλο.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Argirios on October 26, 2017, 16:22:14 pm
Αν χρησιμοποιείς cygwin, κάνε απλώς εγκατάσταση τα πακέτα που εμφανίζονται αν κάνεις search "cilk". Δε χρειάζεται να κάνεις κάτι άλλο.
Α τέλεια, θένξ!


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 21:09:32 pm
Για να τρέξω cilk στον υπολογιστή μου ( όχι διαδη) με cygwin πρέπει να γράψω κάτι στο bash_profile ?

Έχω εγκαταστήσει τα αντίστοιχα πακέτα κατά το installation του cygwin , αλλά δεν μου βρίσκει λέει την cilk.h (  fatal error: cilk.h: No such file or directory
 #include <cilk.h>
)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: zoodoo on November 11, 2017, 21:12:54 pm
Τρέξε αυτή την εντολή στο cygwin:  echo 'source /opt/intel/bin/compilervars.sh intel64' >>~/.bash_profile 
και ξαναδοκίμασε να κάνεις compile.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 21:19:49 pm
Τρέξε αυτή την εντολή στο cygwin:  echo 'source /opt/intel/bin/compilervars.sh intel64' >>~/.bash_profile 
και ξαναδοκίμασε να κάνεις compile.


thnx , δούλεψε


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 21:38:56 pm
Τώρα μου βγάζει αυτό :

/tmp/ccUmZtag.o:bitonic.c:(.text+0x0): multiple definition of `main'
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/libcilkrts.dll.a(d000494.o):(.text+0x0): first defined here
/tmp/ccUmZtag.o:bitonic.c:(.text+0x3e4): undefined reference to `exchange'
/tmp/ccUmZtag.o:bitonic.c:(.text+0x3e4): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `exchange'
/tmp/ccUmZtag.o:bitonic.c:(.text+0x5a0): undefined reference to `exchange'
/tmp/ccUmZtag.o:bitonic.c:(.text+0x5a0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `exchange'
/tmp/ccUmZtag.o:bitonic.c:(.text+0x5ed): undefined reference to `exchange'
/tmp/ccUmZtag.o:bitonic.c:(.text+0x5ed): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `exchange'
collect2: error: ld returned 1 exit status

καμιά ιδέα ;


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Argirios on November 11, 2017, 21:41:59 pm
Δοκίμασε
#include <cilk/cilk.h>
#include <cilk/cilk_api.h>


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 21:44:08 pm
Τα έχω βάλει αυτά

εδιτ : το τρέχω έτσι : gcc -fcilkplus -lcilkrts bitonic.c   σύμφωνα με αυτό (κάτω κάτω):https://www.cilkplus.org/build-gcc-cilkplus


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Argirios on November 11, 2017, 21:53:45 pm
Εγώ έτσι το κάνω και τρέχει, αυτό που γράφεις μου βγάζει κάτι παρόμοια
gcc bitonic.c -fcilkplus -lcilkrts -o name


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 22:05:35 pm
Το τρέχω όπως λες και τώρα δεν μου βγάζει το πρώτο σφάλμα για multiple definition of `main' μου βγάζει όμως τα υπόλοιπα (undefined reference to `exchange' και τα αλλά που έγραψα στο άλλο ποστ)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Argirios on November 11, 2017, 22:13:05 pm
Δοκίμασε να βγάλεις το "inline" στη δήλωση της exchange.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: johnvoyager on November 11, 2017, 22:15:08 pm
Δοκίμασε να βγάλεις το "inline" στη δήλωση της exchange.

Να 'σαι καλά φίλε, όλα κομπλέ τώρα


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Xplicit on October 15, 2018, 23:26:33 pm
Επειδή από ότι κατάλαβα πολλά παιδιά έχουν δυσκολευτεί με την εγκατάσταση του Cilk αποφάσισα να κάνω ένα μίνι οδηγό για εγκατάσταση σε Linux. Θα δουλέψει σίγουρα σε Ubuntu και Mint. Δεν παίρνω όρκο για CentOS κλπ.

Εγώ προτείνω να κατεβάσει κάποιος τον icc ο οποίος είναι ο c compiler της intel. Δεν είναι open-source αλλα στους φοιτητές παρέχεται δωρεάν.

0) Ο gcc είναι προεγκατεστημένος αλλα ο g++ συνήθως δεν είναι. Πρίν να ξεκινήσουμε τρέχουμε:
Code:
sudo apt-get update
Code:
sudo apt-get install build-essential

1) Μπαίνουμε στο site της intel και κάνουμε register: https://software.intel.com/en-us/parallel-studio-xe/choose-download/student-linux-fortran (https://software.intel.com/en-us/parallel-studio-xe/choose-download/student-linux-fortran)

2) Αφού κάνουμε register περιμένουμε το email της εταιρίας το οποίο μπορεί να κάνει και 2 μέρες. Σε μένα εμφανίστηκε αμέσως ο κωδικός οπότε δεν έχασα καθόλου χρόνο. Κατεβάζουμε το 2019 Initial Release - Customizable Package. Το αρχείο είναι μικρό, αν θυμάμαι καλά το πολύ 30MB.

3) Κάνουμε αποσυμπίεση το περιεχόμενο του σε κάποιο φάκελο και μεταφερόμαστε σε αυτόν με το terminal. Εκεί μέσα ξεκινάμε την εγκατάσταση με την εντολή
Code:
bash install_GUI.sh

4) Επιλέγουμε κάποιες βασικές ρυθμίσεις και πατάμε next εώς ότου φθάσουμε στα Options. Εκεί επιλέγουμε Customize

5) Μας δίνεται η επιλογή να επιλέξουμε μόνο τα πακέτα που θέλουμε. Η εναλλακτική θα έχει ως αποτέλεσμα γύρω στα 5GB download file! Μπορείτε να δείτε ποιά θεώρησα εγώ σημαντικά στα συννημένα. Αν εμφανίσει μήνυμα για πακέτα που λείπουν, τα κατεβάζουμε. Αν αναφέρει βιβλιοθήκες για 32-bit απλά αγνοήστε το. Προσοχή όμως να έχετε βγάλει το tick απο το IA-32 στα options

6) Πατάμε Next και προχωράμε την εγκατάσταση μέχρι να ολοκληρωθεί.

7) Για να ενεργοποιήσει κάποιος τον icc γράφει:
Code:
source path-of-installation/compilers_and_libraries_2019/linux/bin/compilervars.sh -arch intel64 -platform linux 

Όποιος/α αντιμετωπίσει θέμα ας αφήσει ενα σχόλιο για να βοηθήσω όσο μπορώ. Για όσους βγάζουν αφρούς με τα linux, μπορούμε να κανονίσουμε μια ομαδική μάζωξη αύριο μετά τα Παράλληλα ή νωρίτερα ώστε να στήσουμε τα μηχανήματα. Happy Coding  ::)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: laserscout on October 15, 2018, 23:56:35 pm
Έχω να προτείνω κάτι αρκετά πιο εύκολο...

Μην εγκαταστήσετε τίποτα! Για να τρέξει Cilk αρκεί να βάλεις το flag -fcilkplus στον gcc και #include <cilk/cilk.h> στον κώδικα σας.

Ιδού η απόδειξη με ένα απλό πρόγραμμα

(https://www.thmmy.gr/smf/index.php?action=dlattach;topic=65205.0;attach=57943)


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Xplicit on October 16, 2018, 00:10:19 am
Αρκετά Πολύ πιο εύκολο αλλα νομίζω πως χάνεις λίγο σε performance. Στο παράδειγμα του 40ου fibonacci ο κώδικας του icc είναι 2 φορές πιο γρήγορος. Όσοι επιλέξετε gcc μην ξεχάσετε το flag -O3. Είναι αρκετή η διαφορά σε ορισμένες περιπτώσεις.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Niri on October 16, 2018, 17:32:00 pm
Έχω να προτείνω κάτι αρκετά πιο εύκολο...

Μην εγκαταστήσετε τίποτα! Για να τρέξει Cilk αρκεί να βάλεις το flag -fcilkplus στον gcc και #include <cilk/cilk.h> στον κώδικα σας.

Ιδού η απόδειξη με ένα απλό πρόγραμμα

https://www.thmmy.gr/smf/index.php?action=dlattach;topic=65205.0;attach=57943

Απλα οσοι αποφασισουν να το κανουν χρησιμοποιώντας το gcc να εχουν υποψιν οτι απο την εκδοση 8.1 (https://www.gnu.org/software/gcc/gcc-8/changes.html) του gcc και μετα αφαιρειται η cilk εχοντας ηδη θεωρηθει deprecated απο την εκδοση 7.1 (https://www.gnu.org/software/gcc/gcc-7/changes.html).

Οποτε οσοι το κανουν ετσι να προσεξουν να μην εχουν τις τελευταιες εκδοσεις του gcc.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Aristos on October 16, 2018, 19:18:26 pm
υπάρχει και αυτό (http://cilk.mit.edu/download/) που είναι ουσιαστικά η μοναδική "ζωντανή" έκδοση της cilk. παίζουν repositories για debian/ubuntu. σε αλλα ίσως είναι λίγο παλούκι το build αλλά με ένα σχετικά σύγχρονο toolchain τα πάντα γίνονται. βέβαια ο  compiler της intel είναι μάλλον γρηγορότερος και πάλι, τουλάχιστον σε επεξεργαστές intel.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: laserscout on October 16, 2018, 22:03:28 pm
Απλα οσοι αποφασισουν να το κανουν χρησιμοποιώντας το gcc να εχουν υποψιν οτι απο την εκδοση 8.1 (https://www.gnu.org/software/gcc/gcc-8/changes.html) του gcc και μετα αφαιρειται η cilk εχοντας ηδη θεωρηθει deprecated απο την εκδοση 7.1 (https://www.gnu.org/software/gcc/gcc-7/changes.html).

Οποτε οσοι το κανουν ετσι να προσεξουν να μην εχουν τις τελευταιες εκδοσεις του gcc.

Τα 18.04 ubuntu όπου έκανα την δοκιμή δίνουν gcc 7.3 ως main πακέτο και δεν βγάζει κανένα warning.

Δεν θέλω να επηρεάσω αυτούς όπου θέλουν να ασχοληθούν και να το ψάξουν, αλλά να βοηθήσω αυτούς όπου δυσκολεύονται.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: laserscout on October 16, 2018, 22:12:34 pm
Μιλώντας για "ασχολία" κατάφερε κανείς να κάνει build τον cilk του MIT; Και να κάνει το tapir να δουλέψει; 


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Niri on October 16, 2018, 22:44:41 pm
Τα 18.04 ubuntu όπου έκανα την δοκιμή δίνουν gcc 7.3 ως main πακέτο και δεν βγάζει κανένα warning.

Δεν θέλω να επηρεάσω αυτούς όπου θέλουν να ασχοληθούν και να το ψάξουν, αλλά να βοηθήσω αυτούς όπου δυσκολεύονται.

Ναι μεχρι και την εκδοση 8.1 του gcc η cilk υπαρχει απλα βρισκεται σε deprecation mode.

Βεβαια τωρα που το ξαναειδα το ιδιο θα ισχυσει και για τον compiler της intel απ'οτι φαινεται και μαλλον θα καταργηθει σε 1-2 χρονια
https://software.intel.com/en-us/forums/intel-cilk-plus/topic/745556

Οποτε μιας και η ιδια η intel αρχιζει να την καταργει σιγα σιγα ισως και ο Πιτσιανης να αντικαταστησει τη διδασκαλια της cilk με καποια αλλη τεχνολογια παραλληλοποιησης απο του χρονου.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: laserscout on October 16, 2018, 23:05:23 pm
Οποτε μιας και η ιδια η intel αρχιζει να την καταργει σιγα σιγα ισως και ο Πιτσιανης να αντικαταστησει τη διδασκαλια της cilk με καποια αλλη τεχνολογια παραλληλοποιησης απο του χρονου.

http://cilk.mit.edu/about/#advisory-board

Το είχε πει ο Πιτσιάνης, είναι biased.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: Xplicit on October 17, 2018, 22:07:13 pm
Ο Πιτσιάνης είχε πεί να κατεβάσουμε το Cilk της intel, του MIT λέει ότι είναι αρχαίος... Όντως και στον επόμενο icc θα καταργηθεί η Cilk, δεν είναι θέμα του GCC. Επιπλέον είναι πιο γρήγορος και στους AMD, μιλάω εκ πείρας.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: laserscout on October 18, 2018, 09:39:24 am
Ο Πιτσιάνης είχε πεί να κατεβάσουμε το Cilk της intel, του MIT λέει ότι είναι αρχαίος... Όντως και στον επόμενο icc θα καταργηθεί η Cilk, δεν είναι θέμα του GCC. Επιπλέον είναι πιο γρήγορος και στους AMD, μιλάω εκ πείρας.

Δεν κατάλαβες τι ήθελα να πω... Ο Πιτσιάνης είναι στο advisory board του CILK

(https://www.thmmy.gr/smf/index.php?action=dlattach;topic=65205.0;attach=57947)

Γι'αυτό θέλει να το δούμε κι ας το αφήνει η intel.


Title: Re: [Παράλληλα και Διανεμημένα Συστήματα] Cilk
Post by: koumanas on October 19, 2018, 14:16:43 pm
PSA: Windows 10's WSL and Cilk do NOT come along... Απλά χρησιμοποιήστε κανονικά Ubuntu!  :P