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

Scripts

parent dd13b64e
Branches
No related tags found
No related merge requests found
...@@ -70,13 +70,14 @@ usage () { ...@@ -70,13 +70,14 @@ usage () {
# ou de tous les paramètres. # ou de tous les paramètres.
dir="collection" dir="collection"
nbjobsmin=10 nbjobsmin=30
nbjobsmax=100 nbjobsmax=50
nbjobsstep=10 nbjobsstep=1
tmin=0.1 tmin=1
tmax=0.5 tmax=5
tstep=0.1 tstep=1
nbinstances=10 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 # GESTION DE PARAMÈTRES DONNÉS PAR L'UTILISATEUR
...@@ -96,6 +97,42 @@ nbinstances=10 ...@@ -96,6 +97,42 @@ nbinstances=10
# N'oubliez pas à remettre les # dans les deux lignes ! # N'oubliez pas à remettre les # dans les deux lignes !
# A FAIRE # 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 # GÉNÉRATION DES INSTANCES ALÉATOIRES
...@@ -115,4 +152,16 @@ nbinstances=10 ...@@ -115,4 +152,16 @@ nbinstances=10
mkdir -p $dir mkdir -p $dir
# A FAIRE for nbjobs in $(seq $nbjobsmin $nbjobsstep $nbjobsmax); do
\ No newline at end of file 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 () { ...@@ -53,7 +53,14 @@ getParetoDistributionSample () {
# le cas contraire. # le cas contraire.
# Affectez les paramètres aux variables. # 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 # GÉNÉRATION DE DURÉES OPÉRATOIRES ALÉATOIRES
...@@ -65,6 +72,8 @@ getParetoDistributionSample () { ...@@ -65,6 +72,8 @@ getParetoDistributionSample () {
# fonction getParetoDistributionSample. # fonction getParetoDistributionSample.
# A FAIRE # A FAIRE
proc_times=($(for i in $(seq 1 $nb_tasks); do getParetoDistributionSample; done))
# GÉNÉRATION DE DATES DE LIBÉRATION ALÉATOIRES # GÉNÉRATION DE DATES DE LIBÉRATION ALÉATOIRES
...@@ -77,7 +86,15 @@ getParetoDistributionSample () { ...@@ -77,7 +86,15 @@ getParetoDistributionSample () {
# correspond au troisième paramètre du script. # correspond au troisième paramètre du script.
# A FAIRE # 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 # ÉCRITURE DES DONNÉES GÉNÉRÉES AU FICHIER
# #
...@@ -85,3 +102,12 @@ getParetoDistributionSample () { ...@@ -85,3 +102,12 @@ getParetoDistributionSample () {
# job_id processing_time release_date # job_id processing_time release_date
# A FAIRE # 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 ...@@ -25,6 +25,15 @@ LC_NUMERIC=en_US.UTF-8
# Assurez vous que le premier paramètre correspond bien à un répertoire. # Assurez vous que le premier paramètre correspond bien à un répertoire.
# A FAIRE # 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. # Affectation des paramètres aux variables.
...@@ -49,3 +58,23 @@ m_step=$5 ...@@ -49,3 +58,23 @@ m_step=$5
# Les colonnes sont séparées par une espace. # Les colonnes sont séparées par une espace.
# A FAIRE # 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 to comment