source: trunk/scripts/tsar-sim.sh @ 3

Last change on this file since 3 was 1, checked in by alain, 8 years ago

First import

File size: 3.7 KB
Line 
1#! /bin/bash
2
3#--------------------------------------------------------------------
4# File      : tsar-sim.sh
5# Author    : Ghassan Almaless
6# Contact   : ghassan.almaless@lip6.fr
7# Copyright : UPMC/LIP6
8# Version   : 1.2
9# Date      : 2010/11/07  (YYYY/MM/DD)
10#--------------------------------------------------------------------
11# This script is released under the GNU public license version 2
12#--------------------------------------------------------------------
13# Description :
14# - This script will generate TSAR hardware description,
15#   compile it to BIB binary format and than it will start
16#   TSAR simulator.
17#
18# - The following arguments can be passed to this script (order is not relevant)
19#     -xmax: number of clusters in a row
20#     -ymax: number of clusters in a column
21#     -nproc: number of CPUs per Cluster
22#     -xfb: frameBuffer's X-length
23#     -yfb: frameBuffer's Y-length
24#     -bscpu: BootStrap CPU (0 to xmax*ymax*nproc-1)
25#     -memsz: per cluster memory size in bytes.
26#     -o: output file name
27#     -g: generate TSAR hardware description, dont call the simulator.
28#   Default values are (in order) 2 2 4 XX 0x800000 "arch-info.bin"
29#--------------------------------------------------------------------
30
31if [ -z "$ALMOS_TOP" ]
32then
33    echo "Error: ALMOS_TOP environment variable is missing"
34    exit 1
35fi
36
37xmax=2
38ymax=2
39ncpu=4
40xfb=512
41yfb=512
42memsz=0xC00000
43bscpu= # let gen-arch-info choose for us #
44output="arch-info.bin"
45noSim="false"
46
47usage()
48{
49    echo "The following arguments can be passed to this script (order is not relevant)"
50    echo "   -xmax: number of clusters in a row"
51    echo "   -ymax: number of clusters in a column"
52    echo "   -nproc: number of CPUs per Cluster"
53    echo "   -xfb: frameBuffer's X-length"
54    echo "   -yfb: frameBuffer's Y-length"
55    echo "   -bscpu: BootStrap CPU (0 to xmax*ymax*nproc-1)"
56    echo "   -memsz: per cluster memory size in bytes"
57    echo "   -o: output file name"
58    echo "   -g: generate TSAR hardware description, dont call the simulator"
59    echo ""
60    echo "Default values are (in order) $xmax $ymax $ncpu $xfb $yfb $bscpu $memsz $output"
61}
62
63while [ $# -gt 0 ]
64do
65    case "$1" in
66        -xmax)  xmax=$2;      shift;;
67        -ymax)  ymax=$2;      shift;;
68        -nproc) ncpu=$2;      shift;;
69        -xfb)   xfb=$2;       shift;;
70        -yfb)   yfb=$2;       shift;;
71        -o)     output="$2";  shift;;
72        -bscpu) bscpu=$2;     shift;;
73        -memsz) memsz=$2;     shift;;
74        -g)     noSim="true";;
75        -*) echo "$0: error - unrecognized option $1" 1>&2; usage 1>&2; exit 1;;
76        *) echo "unexpected option/argument $1" 1>&2; usage 1>$2; exit 2;;
77    esac
78    shift
79done
80
81memsz=$(printf "%d" $memsz)
82GEN_ARCH_INFO="$ALMOS_TOP/scripts/arch_info_gen.sh"
83INFO2BIB="$ALMOS_TOP/tools/bin/info2bib"
84SIM="$ALMOS_TOP/platform/bin/tsar-sim.x"
85INFO_FILE="/tmp/tsar-${xmax}${ymax}${ncpu}_${xfb}x${yfb}.info"
86
87error_arch_info()
88{
89    echo "Cannot generate platform description, command faild or $GEN_ARCH_INFO is not in your PATH" 
90    exit 2
91}
92
93error_info2bib()
94{
95    echo "Cannot compile platform description to BIB binary format, command faild or $INFO2BIB is not in your PATH"
96    exit 3
97}
98
99error_sim()
100{
101    echo "Cannot launch the simulator, command faild or $SIM is not in your PATH"
102    exit 4
103}
104
105$GEN_ARCH_INFO $memsz $xmax $ymax $ncpu $bscpu > $INFO_FILE             || error_arch_info
106$INFO2BIB -i $INFO_FILE -o $output                               || error_info2bib
107
108if [ $noSim = "false" ]; then
109    $SIM -XMAX $xmax -YMAX $ymax -NPROCS $ncpu -XFB $xfb -YFB $yfb -MEMSZ $memsz || error_sim
110fi
111
112#-------------------------------------------------------------------------------#
113#                                End of script                                  #
114#-------------------------------------------------------------------------------#
Note: See TracBrowser for help on using the repository browser.