From: alegrand Date: Fri, 24 Aug 2007 13:19:32 +0000 (+0000) Subject: Adding a test on priorities X-Git-Tag: v3.3~1248 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/cb47fb240292d0cb5f2662be653d3a50f4f96972?ds=sidebyside Adding a test on priorities git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4112 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/examples/msg/Makefile.am b/examples/msg/Makefile.am index d56366ea49..f0ba673d77 100644 --- a/examples/msg/Makefile.am +++ b/examples/msg/Makefile.am @@ -26,7 +26,9 @@ TESTS = sendrecv/sendrecv_KCCFLN05.tesh \ masterslave/masterslave.tesh \ masterslave/masterslave_forwarder.tesh \ masterslave/masterslave_bypass.tesh \ - parallel_task/parallel_task.tesh + parallel_task/parallel_task.tesh \ + priority/priority.tesh + if HAVE_SDP BROKEN_TESTS = sendrecv/sendrecv_SDP.tesh @@ -42,7 +44,8 @@ CLEANFILES = sendrecv/*~ \ masterslave/masterslave \ masterslave/masterslave_forwarder \ masterslave/masterslave_bypass \ - parallel_task/parallel_task + parallel_task/parallel_task \ + priority/priority if HAVE_GTNETS CLEANFILES += gtnets/gtnets @@ -57,7 +60,8 @@ bin_PROGRAMS = sendrecv/sendrecv \ masterslave/masterslave_forwarder \ masterslave/masterslave_failure \ masterslave/masterslave_bypass \ - parallel_task/parallel_task + parallel_task/parallel_task \ + priority/priority if HAVE_GTNETS bin_PROGRAMS += gtnets/gtnets @@ -73,10 +77,14 @@ sendrecv_sendrecv_LDADD = $(top_builddir)/src/libsimgrid.la suspend_suspend_SOURCES = suspend/suspend.c suspend_suspend_LDADD = $(top_builddir)/src/libsimgrid.la -# master/slave application example +# parallel task example parallel_task_parallel_task_SOURCES = parallel_task/parallel_task.c parallel_task_parallel_task_LDADD = $(top_builddir)/src/libsimgrid.la +# playing with priorities example +priority_priority_SOURCES = priority/priority.c +priority_priority_LDADD = $(top_builddir)/src/libsimgrid.la + # master/slave application example masterslave_masterslave_SOURCES = masterslave/masterslave.c masterslave_masterslave_LDADD = $(top_builddir)/src/libsimgrid.la diff --git a/examples/msg/Makefile.in b/examples/msg/Makefile.in index 2e70f5c77a..2218b71953 100644 --- a/examples/msg/Makefile.in +++ b/examples/msg/Makefile.in @@ -44,7 +44,8 @@ bin_PROGRAMS = sendrecv/sendrecv$(EXEEXT) suspend/suspend$(EXEEXT) \ masterslave/masterslave_forwarder$(EXEEXT) \ masterslave/masterslave_failure$(EXEEXT) \ masterslave/masterslave_bypass$(EXEEXT) \ - parallel_task/parallel_task$(EXEEXT) $(am__EXEEXT_1) + parallel_task/parallel_task$(EXEEXT) \ + priority/priority$(EXEEXT) $(am__EXEEXT_1) @HAVE_GTNETS_TRUE@am__append_2 = gtnets/gtnets @HAVE_GTNETS_FALSE@am__append_3 = gtnets/gtnets.c DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @@ -102,6 +103,9 @@ parallel_task_parallel_task_OBJECTS = \ $(am_parallel_task_parallel_task_OBJECTS) parallel_task_parallel_task_DEPENDENCIES = \ $(top_builddir)/src/libsimgrid.la +am_priority_priority_OBJECTS = priority.$(OBJEXT) +priority_priority_OBJECTS = $(am_priority_priority_OBJECTS) +priority_priority_DEPENDENCIES = $(top_builddir)/src/libsimgrid.la am_sendrecv_sendrecv_OBJECTS = sendrecv.$(OBJEXT) sendrecv_sendrecv_OBJECTS = $(am_sendrecv_sendrecv_OBJECTS) sendrecv_sendrecv_DEPENDENCIES = $(top_builddir)/src/libsimgrid.la @@ -125,14 +129,16 @@ SOURCES = $(gtnets_gtnets_SOURCES) $(masterslave_masterslave_SOURCES) \ $(masterslave_masterslave_failure_SOURCES) \ $(masterslave_masterslave_forwarder_SOURCES) \ $(parallel_task_parallel_task_SOURCES) \ - $(sendrecv_sendrecv_SOURCES) $(suspend_suspend_SOURCES) + $(priority_priority_SOURCES) $(sendrecv_sendrecv_SOURCES) \ + $(suspend_suspend_SOURCES) DIST_SOURCES = $(am__gtnets_gtnets_SOURCES_DIST) \ $(masterslave_masterslave_SOURCES) \ $(masterslave_masterslave_bypass_SOURCES) \ $(masterslave_masterslave_failure_SOURCES) \ $(masterslave_masterslave_forwarder_SOURCES) \ $(parallel_task_parallel_task_SOURCES) \ - $(sendrecv_sendrecv_SOURCES) $(suspend_suspend_SOURCES) + $(priority_priority_SOURCES) $(sendrecv_sendrecv_SOURCES) \ + $(suspend_suspend_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -290,14 +296,15 @@ TESTS = sendrecv/sendrecv_KCCFLN05.tesh \ masterslave/masterslave.tesh \ masterslave/masterslave_forwarder.tesh \ masterslave/masterslave_bypass.tesh \ - parallel_task/parallel_task.tesh + parallel_task/parallel_task.tesh \ + priority/priority.tesh @HAVE_SDP_TRUE@BROKEN_TESTS = sendrecv/sendrecv_SDP.tesh CLEANFILES = sendrecv/*~ sendrecv/sendrecv suspend/*~ suspend/suspend \ masterslave/*~ masterslave/masterslave \ masterslave/masterslave_forwarder \ masterslave/masterslave_bypass parallel_task/parallel_task \ - $(am__append_1) + priority/priority $(am__append_1) # sendrecv simple example sendrecv_sendrecv_SOURCES = sendrecv/sendrecv.c @@ -307,10 +314,14 @@ sendrecv_sendrecv_LDADD = $(top_builddir)/src/libsimgrid.la suspend_suspend_SOURCES = suspend/suspend.c suspend_suspend_LDADD = $(top_builddir)/src/libsimgrid.la -# master/slave application example +# parallel task example parallel_task_parallel_task_SOURCES = parallel_task/parallel_task.c parallel_task_parallel_task_LDADD = $(top_builddir)/src/libsimgrid.la +# playing with priorities example +priority_priority_SOURCES = priority/priority.c +priority_priority_LDADD = $(top_builddir)/src/libsimgrid.la + # master/slave application example masterslave_masterslave_SOURCES = masterslave/masterslave.c masterslave_masterslave_LDADD = $(top_builddir)/src/libsimgrid.la @@ -418,6 +429,12 @@ parallel_task/$(am__dirstamp): parallel_task/parallel_task$(EXEEXT): $(parallel_task_parallel_task_OBJECTS) $(parallel_task_parallel_task_DEPENDENCIES) parallel_task/$(am__dirstamp) @rm -f parallel_task/parallel_task$(EXEEXT) $(LINK) $(parallel_task_parallel_task_OBJECTS) $(parallel_task_parallel_task_LDADD) $(LIBS) +priority/$(am__dirstamp): + @$(MKDIR_P) priority + @: > priority/$(am__dirstamp) +priority/priority$(EXEEXT): $(priority_priority_OBJECTS) $(priority_priority_DEPENDENCIES) priority/$(am__dirstamp) + @rm -f priority/priority$(EXEEXT) + $(LINK) $(priority_priority_OBJECTS) $(priority_priority_LDADD) $(LIBS) sendrecv/$(am__dirstamp): @$(MKDIR_P) sendrecv @: > sendrecv/$(am__dirstamp) @@ -443,6 +460,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/masterslave_failure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/masterslave_forwarder.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parallel_task.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/priority.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendrecv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/suspend.Po@am__quote@ @@ -551,6 +569,20 @@ parallel_task.obj: parallel_task/parallel_task.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parallel_task.obj `if test -f 'parallel_task/parallel_task.c'; then $(CYGPATH_W) 'parallel_task/parallel_task.c'; else $(CYGPATH_W) '$(srcdir)/parallel_task/parallel_task.c'; fi` +priority.o: priority/priority.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT priority.o -MD -MP -MF $(DEPDIR)/priority.Tpo -c -o priority.o `test -f 'priority/priority.c' || echo '$(srcdir)/'`priority/priority.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/priority.Tpo $(DEPDIR)/priority.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='priority/priority.c' object='priority.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o priority.o `test -f 'priority/priority.c' || echo '$(srcdir)/'`priority/priority.c + +priority.obj: priority/priority.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT priority.obj -MD -MP -MF $(DEPDIR)/priority.Tpo -c -o priority.obj `if test -f 'priority/priority.c'; then $(CYGPATH_W) 'priority/priority.c'; else $(CYGPATH_W) '$(srcdir)/priority/priority.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/priority.Tpo $(DEPDIR)/priority.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='priority/priority.c' object='priority.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o priority.obj `if test -f 'priority/priority.c'; then $(CYGPATH_W) 'priority/priority.c'; else $(CYGPATH_W) '$(srcdir)/priority/priority.c'; fi` + sendrecv.o: sendrecv/sendrecv.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sendrecv.o -MD -MP -MF $(DEPDIR)/sendrecv.Tpo -c -o sendrecv.o `test -f 'sendrecv/sendrecv.c' || echo '$(srcdir)/'`sendrecv/sendrecv.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/sendrecv.Tpo $(DEPDIR)/sendrecv.Po @@ -764,6 +796,7 @@ distclean-generic: -rm -f gtnets/$(am__dirstamp) -rm -f masterslave/$(am__dirstamp) -rm -f parallel_task/$(am__dirstamp) + -rm -f priority/$(am__dirstamp) -rm -f sendrecv/$(am__dirstamp) -rm -f suspend/$(am__dirstamp) diff --git a/examples/msg/priority/deployment_priority.xml b/examples/msg/priority/deployment_priority.xml new file mode 100644 index 0000000000..c79125ab42 --- /dev/null +++ b/examples/msg/priority/deployment_priority.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/examples/msg/priority/priority.c b/examples/msg/priority/priority.c new file mode 100644 index 0000000000..135c2b7f55 --- /dev/null +++ b/examples/msg/priority/priority.c @@ -0,0 +1,78 @@ +/* $Id$ */ + +/* Copyright (c) 2002,2003,2004 Arnaud Legrand. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#include +#include "msg/msg.h" /* Yeah! If you want to use msg, you need to include msg/msg.h */ +#include "xbt/sysdep.h" /* calloc, printf */ + +/* Create a log channel to have nice outputs. */ +#include "xbt/log.h" +#include "xbt/asserts.h" +XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,"Messages specific for this msg example"); + +static int test(int argc, char *argv[]) +{ + double computation_amount = 0.0; + double priority = 1.0; + m_task_t task = NULL; + + + xbt_assert1(sscanf(argv[1],"%lg", &computation_amount), + "Invalid argument %s\n",argv[1]); + xbt_assert1(sscanf(argv[2],"%lg", &priority), + "Invalid argument %s\n",argv[2]); + + INFO2("Hello! Running a task of size %g with priority %g", + computation_amount, priority); + task = MSG_task_create("Task", computation_amount, 0.0,NULL); + MSG_task_set_priority(task, priority); + + MSG_task_execute(task); + + + INFO0("Goodbye now!"); + return 0; +} + +static MSG_error_t test_all(const char *platform_file, + const char *application_file) +{ + MSG_error_t res = MSG_OK; + + { /* Simulation setting */ + MSG_set_channel_number(1); + MSG_paje_output("msg_test.trace"); + MSG_create_environment(platform_file); + } + { /* Application deployment */ + MSG_function_register("test", test); + MSG_launch_application(application_file); + } + res = MSG_main(); + + INFO1("Simulation time %g",MSG_get_clock()); + return res; +} + +int main(int argc, char *argv[]) +{ + MSG_error_t res = MSG_OK; + + MSG_global_init(&argc,argv); + if (argc < 3) { + printf ("Usage: %s platform_file deployment_file\n",argv[0]); + printf ("example: %s msg_platform.xml msg_deployment.xml\n",argv[0]); + exit(1); + } + res = test_all(argv[1],argv[2]); + MSG_clean(); + + if(res==MSG_OK) + return 0; + else + return 1; +} diff --git a/examples/msg/priority/priority.tesh b/examples/msg/priority/priority.tesh new file mode 100644 index 0000000000..070f783473 --- /dev/null +++ b/examples/msg/priority/priority.tesh @@ -0,0 +1,16 @@ +#! ./tesh + +p Testing a simple master/slave example application + +$ $SG_TEST_EXENV priority/priority$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/priority/deployment_priority.xml --cfg=workstation_model:compound --cfg=cpu_model:Cas01 --cfg=network_model:CM02 +> [0.000000] [simix_kernel/INFO] setting 'workstation_model' to 'compound' +> [0.000000] [xbt_cfg/INFO] type in variable = 2 +> [0.000000] [simix_kernel/INFO] setting 'cpu_model' to 'Cas01' +> [0.000000] [xbt_cfg/INFO] type in variable = 2 +> [0.000000] [simix_kernel/INFO] setting 'network_model' to 'CM02' +> [0.000000] [xbt_cfg/INFO] type in variable = 2 +> [Fafard:test:(1) 0.000000] [msg_test/INFO] Hello! Running a task of size 7.6296e+07 with priority 1 +> [Fafard:test:(2) 0.000000] [msg_test/INFO] Hello! Running a task of size 7.6296e+07 with priority 2 +> [Fafard:test:(2) 1.500000] [msg_test/INFO] Goodbye now! +> [Fafard:test:(1) 2.000000] [msg_test/INFO] Goodbye now! +> [2.000000] [msg_test/INFO] Simulation time 2