Ignore:
Timestamp:
Mar 18, 2009, 11:36:26 PM (15 years ago)
Author:
rosiere
Message:

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Script/execute_n.sh

    r85 r112  
    55#-----------------------------------------------------------
    66
    7 #-----[ variable ]------------------------------------------
    8 declare -a COMMAND;
    9 declare -i NB_PROCESS;
    10 declare -i CPT;
    11 declare    FILE_CMD;
    12 declare    FILE_CPT;
    13 declare    FILE_CPU;
    14 declare    ID="cpu-${HOSTNAME}-$$"
     7#-----[ global variable ]-----------------------------------
    158
    16 #-----[ usage ]---------------------------------------------
    17 function usage ()
     9#-----[ nb_cpu ]--------------------------------------------
     10function nb_cpu ()
    1811{
    19     echo "Usage     : $0 file [ nb_process ]";
     12    local FILE_CPUINFO=/proc/cpuinfo;
     13    if test ! -f ${FILE_CPUINFO}; then
     14        echo "\"${FILE_CPUINFO}\" don't exist."
     15        usage;
     16    fi;
     17
     18    #eval "${1}=`grep -c \"processor\" ${FILE_CPUINFO}`";
     19    grep -c "processor" ${FILE_CPUINFO};
     20}
     21
     22#-----[ execute_n_usage ]-----------------------------------
     23function execute_n_usage ()
     24{
     25    echo "Usage     : ${0} word_dir file [ nb_process ]";
    2026    echo "Arguments : ";
     27    echo " * work_dir   : directory to execute command";
    2128    echo " * file       : list of command";
    2229    echo " * nb_process : number of process (default (and maximum) is the number of processor)";
     
    2532    echo " * This script, for each command, create a directory : Task_X (X is the number of command), and execute the command in this directory.";
    2633    echo " * Two file is generate : \"output\" is the output of the execution, and \"command\" is the command lunch.";
    27     echo " * A command empty (no command on a line of file) is a synchronisation with all process"
    28     echo " * Don't forgot the final end of line (else the last command is not executed";
     34#   echo " * A command empty (no command on a line of file) is a synchronisation with all process"
     35    echo " * Don't forgot the final end of line (else the last command is not executed)";
    2936    echo "";
    3037    exit;
    3138}
    3239
    33 #-----[ nb_cpu ]--------------------------------------------
    34 function nb_cpu ()
     40#-----[ execute_n_test_usage ]------------------------------
     41function execute_n_test_usage ()
    3542{
    36     local FILE_CPUINFO=/proc/cpuinfo;
    37     if test ! -f $FILE_CPUINFO; then
    38         echo "\"${FILE_CPUINFO}\" don't exist."
    39         usage;
     43    if test ${#} -ne 2 -a ${#} -ne 3; then
     44        execute_n_usage;
    4045    fi;
    4146
    42     eval "$1=`grep -c \"processor\" ${FILE_CPUINFO}`";
    43 }
    44 
    45 #-----[ test_usage ]----------------------------------------
    46 function test_usage ()
    47 {
    48     if test $# -ne 1 -a $# -ne 2; then
    49         usage;
     47    if test ! -d ${1}; then
     48        echo "Directory ${1} is invalid";
    5049    fi;
    5150
    52     if test ! -f $1; then
    53         echo "File \"$1\" don't exist";
    54         usage;
     51    if test -z "${MORPHEO_SCRIPT}"; then
     52        echo "Environment variable MORPHEO_SCRIPT is not set";
     53        distexe_usage;
    5554    fi;
    5655
    57     if test ! -s $1; then
    58         echo "File \"$1\" is empty";
    59         usage;
     56    if test ! -f ${2}; then
     57        echo "File \"${2}\" don't exist";
     58        execute_n_usage;
     59    fi;
     60
     61    if test ! -s ${2}; then
     62        echo "File \"${2}\" is empty";
     63        execute_n_usage;
    6064    fi;
    6165}
    6266
    63 #-----[ main ]----------------------------------------------
    64 function main ()
     67#-----[ execute_n_main ]------------------------------------
     68function execute_n ()
    6569{
    66     nb_cpu NB_PROCESS;
     70    local -i NB_PROCESS=$(nb_cpu);
     71    local -i CPT;
     72    local    WORK_DIR=${1};
     73    local    FILE_CMD=${2};
     74    local    FILE_CPT;
     75    local    FILE_CPU;
     76    local    ID="cpu-${HOSTNAME}-$$"
    6777
    68     test_usage $*;
     78    execute_n_test_usage ${*};
    6979
    70     if test $# -eq 2; then
    71         if test $2 -lt $NB_PROCESS; then
    72             NB_PROCESS=$2;
     80    if test ${#} -eq 2; then
     81        if test ${3} -lt ${NB_PROCESS}; then
     82            NB_PROCESS=${3};
    7383        fi;
    7484    fi;
    7585
    76     FILE_CMD=$1;
    77     FILE_CPT="$HOME/control-"`basename $1`;
    78     FILE_CPU="$HOME/$ID";
     86    FILE_CPT="${WORK_DIR}/control-"$(basename ${FILE_CMD});
     87    FILE_CPU="${WORK_DIR}/${ID}";
    7988
    80     echo "<$0>"                                         ;
    81     echo "  * Initialisation ...."                      ;
    82     echo "    - host name                : $HOSTNAME"   ;
    83     echo "    - number of process        : $NB_PROCESS" ;
     89    echo "  * <${HOSTNAME}> ${NB_PROCESS} process";
    8490
    8591    local -i IT_NB_PROCESS=1;
    8692    local -i PID=$$;
    8793
    88     echo "$NB_PROCESS" > $FILE_CPU;
     94    echo "${NB_PROCESS}" > ${FILE_CPU};
    8995
    9096    # create the same number of thread that processor
    91     while test $IT_NB_PROCESS -le $NB_PROCESS; do
    92         execute.sh $FILE_CMD $FILE_CPT $FILE_CPU &
    93         IT_NB_PROCESS=$(($IT_NB_PROCESS+1));
     97    while test ${IT_NB_PROCESS} -le ${NB_PROCESS}; do
     98        ${MORPHEO_SCRIPT}/execute.sh ${WORK_DIR} ${FILE_CMD} ${FILE_CPT} ${FILE_CPU} &
     99        IT_NB_PROCESS=$((${IT_NB_PROCESS}+1));
    94100
    95         if test "$$" -ne $PID; then
     101        if test "$$" -ne ${PID}; then
    96102            break;
    97103        fi;
     
    100106
    101107#-----[ Corps ]---------------------------------------------
    102 main $*;
     108execute_n ${*};
Note: See TracChangeset for help on using the changeset viewer.