DAP:Οδηγίες Χρήσης
Από DistrSys
Για να χρησιμοποιήσετε το περιβάλλον DAP πρέπει να κάνετε τα εξής:
1. Πρέπει καταρχήν να ξέρετε που είναι ο αρχικός κατάλογος του DAP (DAP root directory), της LEDA (LEDA root directory), της βιβλιοθήκης XERCES (XERCES root directory), της βιβλιοθήκης BOOST (BOOST root directory) και του GNU GCC compiler έκδοση 3.2.2 (GCC root directory). Αυτοί οι κατάλογοι, έστω <dap-root-path>, <leda-root-path>, <xerces-root-path>, <boost-root-path> και <gcc-root-path>, πρέπει να αποθηκευτούν στις μεταβλητές περιβάλλοντος DAPROOT, LEDAROOT, XERCESROOT, BOOSTROOT και GCCROOT αντίστοιχα.
π.χ. στο σύστημα Zenon, ο <dap-root-path> είναι: /usr/local/dap-2.0 ο <leda-root-path> είναι: /usr/local/LEDA-4.3.1 ο <xerces-root-path> είναι: /usr/local/xerces-2.1.0 ο <boost-root-path> είναι: /usr/local/boost-1.30.2 και ο <gcc-root-path> είναι: /usr/local/gcc-3.2.2
2. Πρέπει να αναθέσετε τον <dap-root-path> στην μεταβλητή περιβάλλοντος DAPROOT, <leda-root-path> στην μεταβλητή περιβάλλοντος LEDAROOT, τον <xerces-root-path> στην μεταβλητή περιβάλλοντος XERCESROOT, τον <boost-root-path> στην μεταβλητή περιβάλλοντος BOOSTROOT και τον <gcc-root-path> στην μεταβλητή περιβάλλοντος GCCROOT. Αυτό εξαρτάται από το Unix shell που χρησιμοποιείτε και γίνεται ως εξής:
csh/tcsh: setenv DAPROOT <dap-root-path> setenv LEDAROOT <leda-root-path> setenv XERCESROOT <xerces-root-path> setenv BOOSTROOT <boost-root-path> setenv GCCROOT <gcc-root-path> sh/bash: export DAPROOT=<dap-root-path> export LEDAROOT=<leda-root-path> export XERCESROOT=<xerces-root-path> export BOOSTROOT=<boost-root-path> export GCCROOT=<gcc-root-path> π.χ. στο σύστημα Zenon και σε csh/tcsh πρέπει να δώσετε: setenv DAPROOT /usr/local/dap-2.0 setenv LEDAROOT /usr/local/LEDA-4.3.1 setenv XERCESROOT /usr/local/xerces-2.1.0 setenv BOOSTROOT /usr/local/boost-1.30.2 setenv GCCROOT /usr/local/gcc-3.2.2
3. Πρέπει να αναθέσετε τιμή και σε μία άλλη μεταβλητή περιβάλλοντος που λέγεται LD_LIBRARY_PATH και είναι σημαντική όταν χρησιμοποιείτε διαμοιραζόμενες βιβλιοθήκες (shared libraries).
csh/tcsh:
setenv LD_LIBRARY_PATH ${LEDAROOT}:${XERCESROOT}/lib:${LD_LIBRARY_PATH}
sh/bash:
LD_LIBRARY_PATH=$LEDAROOT:$XERCESROOT/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
π.χ. στο σύστημα Zenon και σε csh/tcsh πρέπει να δώσετε:
setenv LD_LIBRARY_PATH ${LEDAROOT}:${XERCESROOT}/lib:${LD_LIBRARY_PATH}
αν η μεταβλητή περιβάλλοντος LD_LIBRARY_PATH δεν είναι ορισμένη, τότε πρέπει να δώσετε:
setenv LD_LIBRARY_PATH ${LEDAROOT}:${XERCESROOT}/lib
4. Στον home κατάλογο του λογαριασμού σας δημιουργήστε έναν φάκελο (DAP home directory) για τα δικά σας αρχεία του DAP (π.χ. αλγόριθμοι, τοπολογίες, κλπ.). Στον κατάλογος, έστω <dap-home-path> πρέπει να αντιγραφούν τα αρχικά αρχεία αλγορίθμων και τοπολογίας του DAP που βρίσκονται στους καταλόγους <dap-root-path>/demo/algorithms και <dap-root-path>/demo/topologies. Επίσης στον κατάλογο <dap-home-path> πρέπει να δημιουργηθούν δύο συμβολικοί σύνδεσμοι controlWin και dap με τα εκτελέσιμα <dap-root-path>/controlWin και <dap-root-path>/dap.
csh/tcsh/sh/bash: mkdir <dap-home-path> cp -R <dap-root-path>/demo/algorithms <dap-home-path> cp -R <dap-root-path>/demo/topologies <dap-home-path> ln -s <dap-root-path>/controlWin <dap-home-path>/controlWin ln -s <dap-root-path>/dap <dap-home-path>/dap π.χ. στο σύστημα Zenon: mkdir ~/myDAP cp -R /usr/local/dap-2.0/demo/algorithms ~/myDAP cp -R /usr/local/dap-2.0/demo/topologies ~/myDAP ln -s /usr/local/dap-2.0/controlWin ~/myDAP/controlWin ln -s /usr/local/dap-2.0/dap ~/myDAP/dap
5. Βεβαιωθείτε ότι οι αλγόριθμοι που είναι τοποθετημένοι στον φάκελο <dap-home-path>/algorithms (π.χ. στο παραπάνω παράδειγμα, ~/myDAP/algorithms) έχουν μεταγλωττιστεί σωστά, εκτελώντας την εντολή:
cd <dap-home-path>/algorithms make
6. Το περιβάλλον DAP είναι έτοιμο για χρήση. Για να κάνετε μια δοκιμή, δώστε την ακόλουθη εντολή:
cd ~/myDAP ./dap &
Το περιβάλλον DAP χρησιμοποιεί την πόρτα 8788 του συστήματος για να λειτουργήσει. Στην περίπτωση που η πόρτα δεν είναι διαθέσιμη (π.χ. για το σύστημα zenon, μπορεί να υπάρχουν και άλλοι χρήστες του dap) το ακόλουθο λάθος θα εμφανιστεί:
Using port: 8788 Delay between events: 0 Executing controller Error while spawning controller Fullpath: /u3/stud2002/patroump/controlWin ServerSocket: Cannot bind local address! Next timestamp: (event queue empty) Min clock: -1 loop: EventHandler empty or sim paused ServerSocket: Accept error!
Αν θέλετε να τρέξετε το DAP σε μια άλλη πόρτα του συστήματος χρησιμοποιήστε την παράμετρο '-p [port]'.
cd ~/myDAP ./dap -p 19800 &
Στην συνέχεια, από το κεντρικό menu, επιλέξτε Setup->Load Topology, και στην φόρμα που θα εμφανιστεί, δώστε topologies/leaderRing5. Η εντολή θα φορτώσει μια τοπολογία δακτυλίου με 5 διεργασίες, έτοιμες να εκτελέσουν έναν αλγόριθμο εκλογής αρχηγού (LCR). Δίνοντας Simulation->Start θα ξεκινήσει η προσομοίωση.
Απομακρυσμένη Σύνδεση
Αν θέλετε να τρέξετε το DAP που είναι εγκατεστημένο σε ένα άλλο μηχάνημα (π.χ. εκτέλεση του dap στο σύστημα zenon από το linux στο σπίτι), χρησιμοποιήστε την παράμετρο '-Χ' του ssh κατά την σύνδεση σας με το απομακρυσμένο μηχάνημα:
ssh -X username@zenon.ceid.upatras.gr
Η εκτέλεση του DAP γίνεται με τον ίδιο τρόπο (βλ. βήμα 6) και το γραφικό περιβάλλον του DAP θα εμφανιστεί στο τοπικό μηχάνημα (με κάποια καθυστέρηση, αναλόγως την ταχύτητα σύνδεσης). Στην περίπτωση που δεν χρησιμοποιήσετε την παράμετρο '-X' το ακόλουθο λάθος θα εμφανιστεί:
Using port: 19800 Delay between events: 0 Executing controller Next timestamp: (event queue empty) Min clock: -1 loop: EventHandler empty or sim paused Error while spawning controller Fullpath: /u3/stud2002/zoi/myDAP/controlWin

