[Advcomparch] Σημαντική παρατήρηση σχετικά με το script 'cslab_pa rsec _add_sniper_roi.sh'

Dimitrios Siakavaras jimsiak at cslab.ece.ntua.gr
Mon Apr 25 23:03:49 EEST 2016


Καλησπέρα παιδιά,

Έχει παρατηρηθεί ένα πρόβλημα με το script cslab_parsec_add_sniper_roi.sh
που σας παρέχεται στον βοηθητικό κώδικα. Το πρόβλημα έχει να κάνει με
κάποιες εκδόσεις του awk, το οποίο χρησιμοποιείται για την τροποποίηση του
αρχείου parsec-3.0/pkgs/libs/hooks/src/hooks.c. Συγκεκριμένα, με κάποιες
εκδόσεις του awk το τελικό τροποποιημένο αρχείο hooks.c περιέχει μόνο μία
γραμμή "#include ...". Προφανώς αυτό δεν είναι αυτό που θέλουμε.

Όσοι έρθετε αντιμέτωποι με το πρόβλημα αυτό (και ΜΟΝΟ εσείς, οι υπόλοιποι
μπορούν να αγνοήσουν αυτό το email) μπορείτε να το αντιμετωπίσετε με δύο
τρόπους που περιγράφονται πιο κάτω:

1. Τροποποίηση του hooks.c με το χέρι:
Αφού επαναφέρετε το αρχικό parsec-3.0/pkgs/libs/hooks/src/hooks.c (το
cslab_parsec_add_sniper_roi.sh πριν το τροποποιήσει έχει δημιουργήσει ένα
αντίγραφο του με το όνομα parsec-3.0/pkgs/libs/hooks/src/hooks.c.old)
ανοίξτε το με έναν editor της επιλογής σας και προσθέστε:
  - στην αρχή του αρχείου τη γραμμή:
    include "/path/to/sniper-6.1/include/sim_api.h"
    όπου αντικαθιστάτε το /path/to/sniper-6.1 με το δικό σας path.
  - ακριβώς κάτω από την γραμμή 173 "void __parsec_roi_begin() {" την κλήση
    SimRoiStart();
  - ακριβώς κάτω από την γραμμή 201 "void __parsec_roi_end() {" την κλήση
    SimRoiEnd();

Στη συνέχεια, προχωρήστε στην μεταγλώττιση της βιβλιοθήκης των hooks με
τις παρακάτω εντολές μέσα από το path των parsec:
$ ./bin/parsecmgmt -a uninstall -c gcc-serial -p hooks
$ ./bin/parsecmgmt -a build -c gcc-serial -p hooks


2. Τροποποίηση του 'cslab_parsec_add_sniper_roi.sh' ώστε να χρησιμοποιεί
την εντολή sed αντί του awk:
Αντικαταστήστε τις γραμμές 26-30 του script:
cat $parsec_hooks_src_file | \
     awk '{print}
              /void __parsec_roi_begin()/ { print "  SimRoiStart();"}
              /void __parsec_roi_end()/ { print "  SimRoiEnd();"}
             ' >> $tmpfile

με τις παρακάτω:
sed s/"void __parsec_roi_begin() {"/"void __parsec_roi_begin() {\n 
SimRoiStart();\n"/g $parsec_hooks_src_file | \
sed s/"void __parsec_roi_end() {"/"void __parsec_roi_end() {\n 
SimRoiEnd();\n"/g >> $tmpfile

Στη συνέχεια (και αφού έχετε επαναφέρει το αρχικό hooks.c) εκτελέστε το
script μέσα από τον φάκελο των parsec.

--
Δημήτρης




More information about the Advcomparch mailing list