Skip to content
Snippets Groups Projects
Commit 97d8c560 authored by vitawrap's avatar vitawrap
Browse files

Scripts

parent dd13b64e
No related branches found
No related tags found
No related merge requests found
......@@ -70,13 +70,14 @@ usage () {
# ou de tous les paramètres.
dir="collection"
nbjobsmin=10
nbjobsmax=100
nbjobsstep=10
tmin=0.1
tmax=0.5
tstep=0.1
nbinstances=10
nbjobsmin=30
nbjobsmax=50
nbjobsstep=1
tmin=1
tmax=5
tstep=1
nbinstances=15
#IMPORTANT: ces nombres ont ete changes car le script ne marche pas avec les float (jsp pk)
# GESTION DE PARAMÈTRES DONNÉS PAR L'UTILISATEUR
......@@ -96,6 +97,42 @@ nbinstances=10
# N'oubliez pas à remettre les # dans les deux lignes !
# A FAIRE
while getopts ":d:j:t:i:h" opt; do
case ${opt} in
d )
dir=$OPTARG
;;
j )
nbjobsmin=$(echo "$OPTARG" | cut -d: -f1)
nbjobsmax=$(echo "$OPTARG" | cut -d: -f2)
nbjobsstep=$(echo "$OPTARG" | cut -d: -f3)
;;
t )
tmin=$(echo "$OPTARG" | cut -d: -f1)
tmax=$(echo "$OPTARG" | cut -d: -f2)
tstep=$(echo "$OPTARG" | cut -d: -f3)
;;
i )
nbinstances=$OPTARG
;;
h )
usage
exit 0
;;
\? )
echo "Option Invalide: $OPTARG" 1>&2
usage
exit 1
;;
: )
echo "Option Invalide: $OPTARG erreur" 1>&2
usage
exit 1
;;
esac
done
shift $((OPTIND -1))
# GÉNÉRATION DES INSTANCES ALÉATOIRES
......@@ -115,4 +152,16 @@ nbinstances=10
mkdir -p $dir
# A FAIRE
\ No newline at end of file
for nbjobs in $(seq $nbjobsmin $nbjobsstep $nbjobsmax); do
if [ $nbjobs -gt $nbjobsmax ]; then
break
fi
for t in $(seq $tmin $tstep $tmax); do
for i in $(seq 1 $nbinstances); do
filename="${nbjobs}_${t}_${i}"
filepath="$dir/$filename"
i=1
bash generate_instance.sh "$filepath" "$nbjobs" "$t"
done
done
done
......@@ -53,7 +53,14 @@ getParetoDistributionSample () {
# le cas contraire.
# Affectez les paramètres aux variables.
# A FAIRE
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <filename> <nbTasks> <liberationParameter>"
exit 1
fi
filename="$1"
nb_tasks="$2"
liberation_parameter="$3"
# GÉNÉRATION DE DURÉES OPÉRATOIRES ALÉATOIRES
......@@ -65,6 +72,8 @@ getParetoDistributionSample () {
# fonction getParetoDistributionSample.
# A FAIRE
proc_times=($(for i in $(seq 1 $nb_tasks); do getParetoDistributionSample; done))
# GÉNÉRATION DE DATES DE LIBÉRATION ALÉATOIRES
......@@ -77,11 +86,28 @@ getParetoDistributionSample () {
# correspond au troisième paramètre du script.
# A FAIRE
# Calcul de la somme des durées opératoires
total_processing_time=$(echo ${proctimes[*]} | tr ' ' '\n' | paste -sd+ | bc)
# Génération des dates de libération de chaque tâche
release_dates=()
for i in $(seq 1 $nb_tasks); do
release_date=$(getNormalDistributionSample 0 $(echo "$total_processing_time * $liberation_parameter" | bc -l))
release_dates+=($release_date)
done
# ÉCRITURE DES DONNÉES GÉNÉRÉES AU FICHIER
#
# Format du fichier à créer (chaque ligne) :
# job_id processing_time release_date
# A FAIRE
\ No newline at end of file
# A FAIRE
#les nombres dans printf sont la pour creer des colonnes d une certaine taille
printf "#%-8s %-18s %-13s\n" "job_id" "processing_time" "release_date" > "$filename"
for i in $(seq 1 $nb_tasks); do
printf "%-8d %-18d %-13d\n" "$i" "${processing_times[$i-1]}" "${release_dates[$i-1]}" >> "$filename"
done
echo "Instance generee dans $filename"
......@@ -25,6 +25,15 @@ LC_NUMERIC=en_US.UTF-8
# Assurez vous que le premier paramètre correspond bien à un répertoire.
# A FAIRE
if [ $# -ne 5 ]; then
echo "Usage: $0 directory generated_file_name m_min m_max m_step"
exit 1
fi
if [ ! -d "$1" ]; then
echo "Error: $1 is not a valid directory."
exit 1
fi
# Affectation des paramètres aux variables.
......@@ -48,4 +57,24 @@ m_step=$5
# Colonnes 5-12 : résultats obtenus par l'exécution du programme "./expe"
# Les colonnes sont séparées par une espace.
# A FAIRE
\ No newline at end of file
# A FAIRE
# en-tete pour la presentation colonnes
echo "Nombre de taches|t|Numero d'instance|Nombre de machines|Temp de traitement moyen|Ecart-type du temps de traitement|Temps de retard moyen|Ecart-type du temps de retard|Nombre moyen de taches en retard|Ecart-type du nombre de taches en retard|Nombre moyen de machines utilises|Ecart-type du nombre de machines utilisees" > $fname
for instance in $dir/*; do
for m in `seq $m_min $m_step $m_max`; do
instance_name=`basename $instance`
nb_jobs=`echo $instance_name | cut -d_ -f1`
t=`echo $instance_name | cut -d_ -f2`
results=`./expe $instance $m`
echo "$nb_jobs $t ${instance_name%.*} $m $results" >> $fname
done
done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment