[Advcomparch] Συμβουλή για εκτέλεση πειραμάτων
Nikos Anastopoulos
anastop at cslab.ece.ntua.gr
Thu Apr 16 04:10:18 EEST 2009
Καλησπέρα,
Μια καλή πρακτική για να αυτοματοποιήσετε τη διαδικασία των πειραμάτων,
χωρίς να χρειάζεται να περιμένετε να τελειώνει μια προσομοίωση, να
αλλάζετε παραμέτρους, να εκτελείτε την επόμενη, κ.ο.κ., είναι να καλείτε
τον simics μέσα από ένα bash script, απ' όπου θα αλλάζετε τις ζητούμενες
παραμέτρους. Συγκεκριμένα, μπορείτε να χρησιμοποιήσετε το option του
simics "-e <simics command>" για να περνάτε από το command line εντολές
στον simics. Αυτό σας επιτρέπει να κάνετε αρχικοποιήσεις ως εξής:
Στο simics script δεν αρχικοποιείτε τις παραμέτρους που σας ενδιαφέρουν
με σταθερές τιμές, αλλά με μεταβλητές του simics. Π.χ., στο
cache-hierarchy.simics, μπορείτε να αλλάξετε τις γραμμές:
@l2c.config_line_number = 4096
@l2c.config_assoc = 8
σε
@l2c.config_line_number = simenv.L2_LINES
@l2c.config_assoc = simenv.L2_ASSOC
Με αυτές τις αναθέσεις υποννοείται ότι υπάρχουν δύο simics μεταβλητές,
οι $L2_LINES και $L2_ASSOC, οι οποίες χρησιμοποιούνται για να
αρχικοποιήσουν τα αντίστοιχα πεδία του αντικειμένου l2c (η πρόσβαση σε
μεταβλητές του simics μέσα από εντολές της Python γίνεται
χρησιμοποιώντας το simenv name space).
To μόνο που μένει τώρα είναι η αρχικοποίηση των simics μεταβλητών.
Αυτό γίνεται από το command line ως εξής:
./simics -stall -e '$L2_ASSOC'=8 -e '$L2_LINES'=4096 -x
./runbenchmark.simics &> output.txt
Επιπλέον, όπου είναι δυνατόν, μπορείτε να χρησιμοποιείτε for loops για
να καλύψετε τις διαφορετικές περιπτώσεις ενός πειράματος.
Π.χ.:
#!/bin/bash
for l2lines in 64 128 256
do
for l2assoc in 2 4 8
do
./simics -stall -e '$L2_ASSOC'=$l2assoc -e '$L2_LINES'=$l2lines -x
./runbenchmark.simics &> output.txt
done
done
Προσοχή: για να τερματίσει ο simics μετά το πέρας της προσομοίωσης και
να μπορεί να εκτελεστεί η επόμενη, πρέπει να βάλετε την εντολή "exit"
στο τέλος του runbenchmark.simics
N.
More information about the Advcomparch
mailing list