From: Frederic Suter Date: Mon, 4 Apr 2016 20:29:22 +0000 (+0200) Subject: start to rename cloud examples X-Git-Tag: v3_13~188 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3902bb71f8b79057f3b4d273fbc489b458a871d3?ds=sidebyside start to rename cloud examples + cloud-multicore is not tested: raise an issue with set_affinity --- diff --git a/.gitignore b/.gitignore index 9d1bf7e3f9..f998fdbe04 100644 --- a/.gitignore +++ b/.gitignore @@ -124,10 +124,10 @@ examples/msg/async-waitany/async-waitany examples/msg/bittorrent/bittorrent examples/msg/bittorrent/bittorrent_platfgen examples/msg/chainsend/chainsend -examples/msg/cloud/bound -examples/msg/cloud/master_worker_vm -examples/msg/cloud/migrate_vm -examples/msg/cloud/multicore +examples/msg/cloud-capping/cloud-capping +examples/msg/cloud-masterworker/cloud-masterworker +examples/msg/cloud-migration/cloud-migration +examples/msg/cloud-multicore/cloud-multicore examples/msg/cloud/scale examples/msg/cloud/simple_vm examples/msg/cloud/two_tasks_vm diff --git a/examples/msg/CMakeLists.txt b/examples/msg/CMakeLists.txt index 1021e691bc..3304d35adb 100644 --- a/examples/msg/CMakeLists.txt +++ b/examples/msg/CMakeLists.txt @@ -1,4 +1,5 @@ -foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany dht-chord dht-pastry exception +foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany + cloud-capping cloud-masterworker cloud-migration cloud-multicore dht-chord dht-pastry exception energy-consumption energy-onoff energy-pstate energy-ptask energy-vm failures io-file io-file-unlink io-remote io-storage masterworker masterworker-mailbox pmm task-priority process-kill process-migration process-suspend properties sendrecv set-maestro process-startkilltime synchro token_ring trace-categories @@ -82,7 +83,8 @@ set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actions-mpi/action ${CMAKE_CURRENT_SOURCE_DIR}/process-startkilltime/start_d.xml ${CMAKE_CURRENT_SOURCE_DIR}/process-startkilltime/start_kill_d.xml PARENT_SCOPE) -foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany bittorrent chainsend dht-chord dht-kademlia +foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany bittorrent chainsend + cloud-capping cloud-masterworker cloud-migration dht-chord dht-kademlia failures io-file io-file-unlink io-remote io-storage masterworker masterworker-mailbox task-priority process-kill process-migration process-suspend properties sendrecv synchro process-startkilltime token_ring) ADD_TESH_FACTORIES(msg-${x} "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/${x} ${x}.tesh) diff --git a/examples/msg/cloud/bound.c b/examples/msg/cloud-capping/cloud-capping.c similarity index 100% rename from examples/msg/cloud/bound.c rename to examples/msg/cloud-capping/cloud-capping.c diff --git a/examples/msg/cloud-capping/cloud-capping.tesh b/examples/msg/cloud-capping/cloud-capping.tesh new file mode 100644 index 0000000000..75aeb14b19 --- /dev/null +++ b/examples/msg/cloud-capping/cloud-capping.tesh @@ -0,0 +1,213 @@ +$ $SG_TEST_EXENV ${bindir:=.}/cloud-capping ${srcdir:=.}/small_platform.xml --log=no_loc "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +> [ 0.000000] (1:master_@Fafard) # 1. Put a single task on a PM. +> [ 0.000000] (1:master_@Fafard) ### Test: with/without MSG_task_set_bound +> [ 0.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard +> [ 10.000000] (2:worker0@Fafard) not bound => duration 10.000000 (76296000.000000 flops/s) +> [1000.000000] (1:master_@Fafard) ### Test: 50% for Task1@Fafard +> [1020.000000] (3:worker0@Fafard) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [2000.000000] (1:master_@Fafard) ### Test: 33% for Task1@Fafard +> [2030.000000] (4:worker0@Fafard) bound to 25432000.000000 => duration 30.000000 (25432000.000000 flops/s) +> [3000.000000] (1:master_@Fafard) ### Test: zero for Task1@Fafard (i.e., unlimited) +> [3000.000000] (5:worker0@Fafard) bound == 0 means no capping (i.e., unlimited). +> [3010.000000] (5:worker0@Fafard) bound to 0.000000 => duration 10.000000 (76296000.000000 flops/s) +> [4000.000000] (1:master_@Fafard) ### Test: 200% for Task1@Fafard (i.e., meaningless) +> [4010.000000] (6:worker0@Fafard) bound to 152592000.000000 => duration 10.000000 (76296000.000000 flops/s) +> [5000.000000] (1:master_@Fafard) +> [5000.000000] (1:master_@Fafard) # 2. Put two tasks on a PM. +> [5000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, no bound for Task2@Fafard +> [5020.000000] (8:worker1@Fafard) not bound => duration 20.000000 (38148000.000000 flops/s) +> [5020.000000] (7:worker0@Fafard) not bound => duration 20.000000 (38148000.000000 flops/s) +> [6000.000000] (1:master_@Fafard) ### Test: 0 for Task1@Fafard, 0 for Task2@Fafard (i.e., unlimited) +> [6000.000000] (9:worker0@Fafard) bound == 0 means no capping (i.e., unlimited). +> [6000.000000] (10:worker1@Fafard) bound == 0 means no capping (i.e., unlimited). +> [6020.000000] (10:worker1@Fafard) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [6020.000000] (9:worker0@Fafard) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [7000.000000] (1:master_@Fafard) ### Test: 50% for Task1@Fafard, 50% for Task2@Fafard +> [7020.000000] (12:worker1@Fafard) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [7020.000000] (11:worker0@Fafard) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [8000.000000] (1:master_@Fafard) ### Test: 25% for Task1@Fafard, 25% for Task2@Fafard +> [8040.000000] (14:worker1@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [8040.000000] (13:worker0@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [9000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 100% for Task2@Fafard +> [9020.000000] (16:worker1@Fafard) bound to 76296000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [9020.000000] (15:worker0@Fafard) bound to 57222000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [10000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, 25% for Task2@Fafard +> [10013.333333] (17:worker0@Fafard) not bound => duration 13.333333 (57221999.999997 flops/s) +> [10040.000000] (18:worker1@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [11000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 25% for Task2@Fafard +> [11013.333333] (19:worker0@Fafard) bound to 57222000.000000 => duration 13.333333 (57221999.999997 flops/s) +> [11040.000000] (20:worker1@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [12000.000000] (1:master_@Fafard) +> [12000.000000] (1:master_@Fafard) # 3. Put a single task on a VM. +> [12000.000000] (1:master_@Fafard) ### Test: with/without MSG_task_set_bound +> [12000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0 +> [12010.000000] (21:worker0@VM0) not bound => duration 10.000000 (76296000.000000 flops/s) +> [13000.000000] (1:master_@Fafard) ### Test: 50% for Task1@VM0 +> [13020.000000] (22:worker0@VM0) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [14000.000000] (1:master_@Fafard) ### Test: 33% for Task1@VM0 +> [14030.000000] (23:worker0@VM0) bound to 25432000.000000 => duration 30.000000 (25432000.000000 flops/s) +> [15000.000000] (1:master_@Fafard) ### Test: zero for Task1@VM0 (i.e., unlimited) +> [15000.000000] (24:worker0@VM0) bound == 0 means no capping (i.e., unlimited). +> [15010.000000] (24:worker0@VM0) bound to 0.000000 => duration 10.000000 (76296000.000000 flops/s) +> [16000.000000] (1:master_@Fafard) ### Test: 200% for Task1@VM0 (i.e., meaningless) +> [16010.000000] (25:worker0@VM0) bound to 152592000.000000 => duration 10.000000 (76296000.000000 flops/s) +> [17000.000000] (1:master_@Fafard) +> [17000.000000] (1:master_@Fafard) # 4. Put two tasks on a VM. +> [17000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0, no bound for Task2@VM0 +> [17020.000000] (27:worker1@VM0) not bound => duration 20.000000 (38148000.000000 flops/s) +> [17020.000000] (26:worker0@VM0) not bound => duration 20.000000 (38148000.000000 flops/s) +> [18000.000000] (1:master_@Fafard) ### Test: 0 for Task1@VM0, 0 for Task2@VM0 (i.e., unlimited) +> [18000.000000] (28:worker0@VM0) bound == 0 means no capping (i.e., unlimited). +> [18000.000000] (29:worker1@VM0) bound == 0 means no capping (i.e., unlimited). +> [18020.000000] (29:worker1@VM0) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [18020.000000] (28:worker0@VM0) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [19000.000000] (1:master_@Fafard) ### Test: 50% for Task1@VM0, 50% for Task2@VM0 +> [19020.000000] (31:worker1@VM0) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [19020.000000] (30:worker0@VM0) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [20000.000000] (1:master_@Fafard) ### Test: 25% for Task1@VM0, 25% for Task2@VM0 +> [20040.000000] (33:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [20040.000000] (32:worker0@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [21000.000000] (1:master_@Fafard) ### Test: 75% for Task1@VM0, 100% for Task2@VM0 +> [21020.000000] (35:worker1@VM0) bound to 76296000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [21020.000000] (34:worker0@VM0) bound to 57222000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [22000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0, 25% for Task2@VM0 +> [22013.333333] (36:worker0@VM0) not bound => duration 13.333333 (57222000.000005 flops/s) +> [22040.000000] (37:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [23000.000000] (1:master_@Fafard) ### Test: 75% for Task1@VM0, 25% for Task2@VM0 +> [23013.333333] (38:worker0@VM0) bound to 57222000.000000 => duration 13.333333 (57222000.000005 flops/s) +> [23040.000000] (39:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [24000.000000] (1:master_@Fafard) +> [24000.000000] (1:master_@Fafard) # 6. Put a task on a PM and a task on a VM. +> [24000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, no bound for Task2@VM0 +> [24020.000000] (40:worker0@Fafard) not bound => duration 20.000000 (38148000.000000 flops/s) +> [24020.000000] (41:worker1@VM0) not bound => duration 20.000000 (38148000.000000 flops/s) +> [25000.000000] (1:master_@Fafard) ### Test: 0 for Task1@Fafard, 0 for Task2@VM0 (i.e., unlimited) +> [25000.000000] (42:worker0@Fafard) bound == 0 means no capping (i.e., unlimited). +> [25000.000000] (43:worker1@VM0) bound == 0 means no capping (i.e., unlimited). +> [25020.000000] (42:worker0@Fafard) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [25020.000000] (43:worker1@VM0) bound to 0.000000 => duration 20.000000 (38148000.000000 flops/s) +> [26000.000000] (1:master_@Fafard) ### Test: 50% for Task1@Fafard, 50% for Task2@VM0 +> [26020.000000] (44:worker0@Fafard) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [26020.000000] (45:worker1@VM0) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [27000.000000] (1:master_@Fafard) ### Test: 25% for Task1@Fafard, 25% for Task2@VM0 +> [27040.000000] (46:worker0@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [27040.000000] (47:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [28000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 100% for Task2@VM0 +> [28020.000000] (48:worker0@Fafard) bound to 57222000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [28020.000000] (49:worker1@VM0) bound to 76296000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [29000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, 25% for Task2@VM0 +> [29020.000000] (50:worker0@Fafard) not bound => duration 20.000000 (38148000.000000 flops/s) +> [29040.000000] (51:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [30000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 25% for Task2@VM0 +> [30020.000000] (52:worker0@Fafard) bound to 57222000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [30040.000000] (53:worker1@VM0) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [31000.000000] (1:master_@Fafard) +> [31000.000000] (1:master_@Fafard) # 7. Put a single task on the VM capped by 10%. +> [31000.000000] (1:master_@Fafard) ### Test: with/without MSG_task_set_bound +> [31000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0 +> [31100.000000] (54:worker0@VM0) not bound => duration 100.000000 (7629600.000000 flops/s) +> [32000.000000] (1:master_@Fafard) ### Test: 50% for Task1@VM0 +> [32100.000000] (55:worker0@VM0) bound to 38148000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [33000.000000] (1:master_@Fafard) ### Test: 33% for Task1@VM0 +> [33100.000000] (56:worker0@VM0) bound to 25432000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [34000.000000] (1:master_@Fafard) ### Test: zero for Task1@VM0 (i.e., unlimited) +> [34000.000000] (57:worker0@VM0) bound == 0 means no capping (i.e., unlimited). +> [34100.000000] (57:worker0@VM0) bound to 0.000000 => duration 100.000000 (7629600.000000 flops/s) +> [35000.000000] (1:master_@Fafard) ### Test: 200% for Task1@VM0 (i.e., meaningless) +> [35100.000000] (58:worker0@VM0) bound to 152592000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [36000.000000] (1:master_@Fafard) +> [36000.000000] (1:master_@Fafard) # 8. Put two tasks on the VM capped by 10%. +> [36000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0, no bound for Task2@VM0 +> [36200.000000] (60:worker1@VM0) not bound => duration 200.000000 (3814800.000000 flops/s) +> [36200.000000] (59:worker0@VM0) not bound => duration 200.000000 (3814800.000000 flops/s) +> [37000.000000] (1:master_@Fafard) ### Test: 0 for Task1@VM0, 0 for Task2@VM0 (i.e., unlimited) +> [37000.000000] (61:worker0@VM0) bound == 0 means no capping (i.e., unlimited). +> [37000.000000] (62:worker1@VM0) bound == 0 means no capping (i.e., unlimited). +> [37200.000000] (62:worker1@VM0) bound to 0.000000 => duration 200.000000 (3814800.000000 flops/s) +> [37200.000000] (61:worker0@VM0) bound to 0.000000 => duration 200.000000 (3814800.000000 flops/s) +> [38000.000000] (1:master_@Fafard) ### Test: 50% for Task1@VM0, 50% for Task2@VM0 +> [38200.000000] (64:worker1@VM0) bound to 38148000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [38200.000000] (63:worker0@VM0) bound to 38148000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [39000.000000] (1:master_@Fafard) ### Test: 25% for Task1@VM0, 25% for Task2@VM0 +> [39200.000000] (66:worker1@VM0) bound to 19074000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [39200.000000] (65:worker0@VM0) bound to 19074000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [40000.000000] (1:master_@Fafard) ### Test: 75% for Task1@VM0, 100% for Task2@VM0 +> [40200.000000] (68:worker1@VM0) bound to 76296000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [40200.000000] (67:worker0@VM0) bound to 57222000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [41000.000000] (1:master_@Fafard) ### Test: no bound for Task1@VM0, 25% for Task2@VM0 +> [41200.000000] (70:worker1@VM0) bound to 19074000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [41200.000000] (69:worker0@VM0) not bound => duration 200.000000 (3814800.000000 flops/s) +> [42000.000000] (1:master_@Fafard) ### Test: 75% for Task1@VM0, 25% for Task2@VM0 +> [42200.000000] (72:worker1@VM0) bound to 19074000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [42200.000000] (71:worker0@VM0) bound to 57222000.000000 => duration 200.000000 (3814800.000000 flops/s) +> [43000.000000] (1:master_@Fafard) +> [43000.000000] (1:master_@Fafard) # 9. Put a task on a PM and a task on the VM capped by 10%. +> [43000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, no bound for Task2@VM0 +> [43011.111111] (73:worker0@Fafard) not bound => duration 11.111111 (68666400.000010 flops/s) +> [43100.000000] (74:worker1@VM0) not bound => duration 100.000000 (7629600.000000 flops/s) +> [44000.000000] (1:master_@Fafard) ### Test: 0 for Task1@Fafard, 0 for Task2@VM0 (i.e., unlimited) +> [44000.000000] (75:worker0@Fafard) bound == 0 means no capping (i.e., unlimited). +> [44000.000000] (76:worker1@VM0) bound == 0 means no capping (i.e., unlimited). +> [44011.111111] (75:worker0@Fafard) bound to 0.000000 => duration 11.111111 (68666400.000010 flops/s) +> [44100.000000] (76:worker1@VM0) bound to 0.000000 => duration 100.000000 (7629600.000000 flops/s) +> [45000.000000] (1:master_@Fafard) ### Test: 50% for Task1@Fafard, 50% for Task2@VM0 +> [45020.000000] (77:worker0@Fafard) bound to 38148000.000000 => duration 20.000000 (38148000.000000 flops/s) +> [45100.000000] (78:worker1@VM0) bound to 38148000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [46000.000000] (1:master_@Fafard) ### Test: 25% for Task1@Fafard, 25% for Task2@VM0 +> [46040.000000] (79:worker0@Fafard) bound to 19074000.000000 => duration 40.000000 (19074000.000000 flops/s) +> [46100.000000] (80:worker1@VM0) bound to 19074000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [47000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 100% for Task2@VM0 +> [47013.333333] (81:worker0@Fafard) bound to 57222000.000000 => duration 13.333333 (57221999.999990 flops/s) +> [47100.000000] (82:worker1@VM0) bound to 76296000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [48000.000000] (1:master_@Fafard) ### Test: no bound for Task1@Fafard, 25% for Task2@VM0 +> [48011.111111] (83:worker0@Fafard) not bound => duration 11.111111 (68666400.000010 flops/s) +> [48100.000000] (84:worker1@VM0) bound to 19074000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [49000.000000] (1:master_@Fafard) ### Test: 75% for Task1@Fafard, 25% for Task2@VM0 +> [49013.333333] (85:worker0@Fafard) bound to 57222000.000000 => duration 13.333333 (57221999.999990 flops/s) +> [49100.000000] (86:worker1@VM0) bound to 19074000.000000 => duration 100.000000 (7629600.000000 flops/s) +> [50000.000000] (1:master_@Fafard) +> [50000.000000] (1:master_@Fafard) # 10. Test migration +> [50000.000000] (1:master_@Fafard) # 10. (a) Put a task on a VM without any bound. +> [50010.000000] (87:worker0@VM0) not bound => duration 10.000000 (76296000.000000 flops/s) +> [51000.000000] (1:master_@Fafard) +> [51000.000000] (1:master_@Fafard) # 10. (b) set 10% bound to the VM, and then put a task on the VM. +> [51100.000000] (88:worker0@VM0) not bound => duration 100.000000 (7629600.000000 flops/s) +> [52000.000000] (1:master_@Fafard) +> [52000.000000] (1:master_@Fafard) # 10. (c) migrate +> [52000.000000] (90:__pr_mig_tx:VM0(Fafard-Fafard)@Fafard) use the default max_downtime value 30ms +> [52002.070722] (1:master_@Fafard) +> [52002.070722] (1:master_@Fafard) # 10. (d) Put a task again on the VM. +> [52102.070722] (91:worker0@VM0) not bound => duration 100.000000 (7629600.000000 flops/s) +> [53002.070722] (1:master_@Fafard) +> [53002.070722] (1:master_@Fafard) # 11. Change a bound dynamically. +> [53002.070722] (1:master_@Fafard) set bound of VM1 to 0.000000 +> [53102.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [53102.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [53102.070722] (1:master_@Fafard) set bound of VM1 to 7629600.000000 +> [53202.070722] (1:master_@Fafard) Task0@VM0: 68666400.000000 flops/s +> [53202.070722] (1:master_@Fafard) Task1@VM1: 7629600.000000 flops/s +> [53202.070722] (1:master_@Fafard) set bound of VM1 to 15259200.000000 +> [53302.070722] (1:master_@Fafard) Task0@VM0: 61036800.000000 flops/s +> [53302.070722] (1:master_@Fafard) Task1@VM1: 15259200.000000 flops/s +> [53302.070722] (1:master_@Fafard) set bound of VM1 to 22888800.000000 +> [53402.070722] (1:master_@Fafard) Task0@VM0: 53407200.000000 flops/s +> [53402.070722] (1:master_@Fafard) Task1@VM1: 22888800.000000 flops/s +> [53402.070722] (1:master_@Fafard) set bound of VM1 to 30518400.000000 +> [53502.070722] (1:master_@Fafard) Task0@VM0: 45777600.000000 flops/s +> [53502.070722] (1:master_@Fafard) Task1@VM1: 30518400.000000 flops/s +> [53502.070722] (1:master_@Fafard) set bound of VM1 to 38148000.000000 +> [53602.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [53602.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [53602.070722] (1:master_@Fafard) set bound of VM1 to 45777600.000000 +> [53702.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [53702.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [53702.070722] (1:master_@Fafard) set bound of VM1 to 53407200.000000 +> [53802.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [53802.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [53802.070722] (1:master_@Fafard) set bound of VM1 to 61036800.000000 +> [53902.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [53902.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [53902.070722] (1:master_@Fafard) set bound of VM1 to 68666400.000000 +> [54002.070722] (1:master_@Fafard) Task0@VM0: 38148000.000000 flops/s +> [54002.070722] (1:master_@Fafard) Task1@VM1: 38148000.000000 flops/s +> [56002.070722] (0:maestro@) Bye (simulation time 56002.1) diff --git a/examples/msg/cloud/master_worker_vm.c b/examples/msg/cloud-masterworker/cloud-masterworker.c similarity index 100% rename from examples/msg/cloud/master_worker_vm.c rename to examples/msg/cloud-masterworker/cloud-masterworker.c diff --git a/examples/msg/cloud/master_worker_vm.tesh b/examples/msg/cloud-masterworker/cloud-masterworker.tesh similarity index 97% rename from examples/msg/cloud/master_worker_vm.tesh rename to examples/msg/cloud-masterworker/cloud-masterworker.tesh index 9187794b29..d4b71a5b48 100644 --- a/examples/msg/cloud/master_worker_vm.tesh +++ b/examples/msg/cloud-masterworker/cloud-masterworker.tesh @@ -2,7 +2,7 @@ p Testing the Cloud API with a simple master/workers -$ $SG_TEST_EXENV ${bindir:=.}/master_worker_vm$EXEEXT --log=no_loc ${srcdir:=.}/../../platforms/platform.xml +$ $SG_TEST_EXENV ${bindir:=.}/cloud-masterworker$EXEEXT --log=no_loc ${srcdir:=.}/platform.xml > [Jacquelin:master:(1) 0.000000] [msg_test/INFO] # Launch 2 VMs > [Jacquelin:master:(1) 0.000000] [msg_test/INFO] create VM00 on PM(Intel) > [Jacquelin:master:(1) 0.000000] [msg_test/INFO] put a process (WRK00) on VM00 diff --git a/examples/msg/cloud/migrate_vm.c b/examples/msg/cloud-migration/cloud-migration.c similarity index 100% rename from examples/msg/cloud/migrate_vm.c rename to examples/msg/cloud-migration/cloud-migration.c diff --git a/examples/msg/cloud-migration/cloud-migration.tesh b/examples/msg/cloud-migration/cloud-migration.tesh new file mode 100644 index 0000000000..c66bb02e63 --- /dev/null +++ b/examples/msg/cloud-migration/cloud-migration.tesh @@ -0,0 +1,24 @@ +$ $SG_TEST_EXENV ${bindir:=.}/cloud-migration ${srcdir:=.}/small_platform.xml --log=no_loc "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +> [ 0.000000] (1:master_@Fafard) Test: Migrate a VM with 1000 Mbytes RAM +> [ 0.000000] (3:__pr_mig_tx:VM0(Fafard-Tremblay)@Fafard) use the default max_downtime value 30ms +> [132.740093] (0:maestro@) FIXME: may need a proper handling, 1 +> [132.765801] (1:master_@Fafard) VM0 migrated: Fafard->Tremblay in 132.766 s +> [132.765801] (1:master_@Fafard) Test: Migrate a VM with 100 Mbytes RAM +> [132.765801] (5:__pr_mig_tx:VM0(Fafard-Tremblay)@Fafard) use the default max_downtime value 30ms +> [146.086085] (0:maestro@) FIXME: may need a proper handling, 1 +> [146.111793] (1:master_@Fafard) VM0 migrated: Fafard->Tremblay in 13.346 s +> [146.111793] (1:master_@Fafard) Test: Migrate two VMs at once from PM0 to PM1 +> [146.111793] (9:__pr_mig_tx:VM0(Fafard-Tremblay)@Fafard) use the default max_downtime value 30ms +> [146.111793] (11:__pr_mig_tx:VM1(Fafard-Tremblay)@Fafard) use the default max_downtime value 30ms +> [411.540563] (0:maestro@) FIXME: may need a proper handling, 1 +> [411.540563] (0:maestro@) FIXME: may need a proper handling, 1 +> [411.566271] (7:mig_wrk@Fafard) VM1 migrated: Fafard->Tremblay in 265.454 s +> [411.566271] (6:mig_wrk@Fafard) VM0 migrated: Fafard->Tremblay in 265.454 s +> [10146.111793] (1:master_@Fafard) Test: Migrate two VMs at once to different PMs +> [10146.111793] (15:__pr_mig_tx:VM0(Fafard-Tremblay)@Fafard) use the default max_downtime value 30ms +> [10146.111793] (17:__pr_mig_tx:VM1(Fafard-Bourassa)@Fafard) use the default max_downtime value 30ms +> [10362.613818] (0:maestro@) FIXME: may need a proper handling, 1 +> [10362.620589] (13:mig_wrk@Fafard) VM1 migrated: Fafard->Bourassa in 216.509 s +> [10411.521626] (0:maestro@) FIXME: may need a proper handling, 1 +> [10411.547334] (12:mig_wrk@Fafard) VM0 migrated: Fafard->Tremblay in 265.436 s +> [20146.111793] (0:maestro@) Bye (simulation time 20146.1) diff --git a/examples/msg/cloud/multicore.c b/examples/msg/cloud-multicore/cloud-multicore.c similarity index 100% rename from examples/msg/cloud/multicore.c rename to examples/msg/cloud-multicore/cloud-multicore.c diff --git a/examples/msg/cloud-multicore/cloud-multicore.tesh b/examples/msg/cloud-multicore/cloud-multicore.tesh new file mode 100644 index 0000000000..ae23645e46 --- /dev/null +++ b/examples/msg/cloud-multicore/cloud-multicore.tesh @@ -0,0 +1,14 @@ +#! ./tesh + +$ $SG_TEST_EXENV ${bindir:=.}/cloud-multicore$EXEEXT --log=no_loc ${srcdir:=.}/three_multicore_hosts.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +> [ 0.000000] (0:maestro@) PM0: 1 core(s), 100000000.000000 flops/s per each +> [ 0.000000] (0:maestro@) PM1: 2 core(s), 100000000.000000 flops/s per each +> [ 0.000000] (0:maestro@) PM2: 4 core(s), 100000000.000000 flops/s per each +> [ 0.000000] (1:master@PM0) === Test PM (set affinity) === +> [ 0.000000] (1:master@PM0) ## 1. start 4 tasks on PM1 (2 cores) +> [ 10.000000] (1:master@PM0) Task1: 50000000.000000 fops/s +> [ 10.000000] (1:master@PM0) Task2: 50000000.000000 fops/s +> [ 10.000000] (1:master@PM0) Task3: 50000000.000000 fops/s +> [ 10.000000] (1:master@PM0) Task4: 50000000.000000 fops/s +> [ 10.000000] (1:master@PM0) ## 2. pin all tasks to CPU0 +> [ 10.000000] (1:master@PM0) set affinity(0x0001@PM1) for Task1 diff --git a/examples/msg/cloud/CMakeLists.txt b/examples/msg/cloud/CMakeLists.txt index 9e15831b07..bf9d37bbd5 100644 --- a/examples/msg/cloud/CMakeLists.txt +++ b/examples/msg/cloud/CMakeLists.txt @@ -1,15 +1,12 @@ -foreach (example master_worker_vm simple_vm migrate_vm bound scale multicore two_tasks_vm) +foreach (example simple_vm scale two_tasks_vm) add_executable (${example} ${example}.c) target_link_libraries(${example} simgrid) set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.c) endforeach() -ADD_TESH_FACTORIES(msg-cloud-master-worker-vm "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/cloud/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/ --cd ${CMAKE_BINARY_DIR}/examples/msg/cloud/ ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/master_worker_vm.tesh) ADD_TESH_FACTORIES(msg-cloud-two-tasks-vm "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/cloud/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/ --cd ${CMAKE_BINARY_DIR}/examples/msg/cloud/ ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/two_tasks_vm.tesh) ADD_TESH_FACTORIES(msg-cloud-simple-vm "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/cloud/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/ --cd ${CMAKE_BINARY_DIR}/examples/msg/cloud/ ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/simple_vm.tesh) set(examples_src ${examples_src} PARENT_SCOPE) -set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/master_worker_vm.tesh - ${CMAKE_CURRENT_SOURCE_DIR}/two_tasks_vm.tesh +set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/two_tasks_vm.tesh ${CMAKE_CURRENT_SOURCE_DIR}/simple_vm.tesh PARENT_SCOPE) -set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/multicore_plat.xml PARENT_SCOPE) diff --git a/examples/msg/cloud/multicore_plat.xml b/examples/platforms/three_multicore_hosts.xml similarity index 65% rename from examples/msg/cloud/multicore_plat.xml rename to examples/platforms/three_multicore_hosts.xml index 23e705132e..7372bf946f 100644 --- a/examples/msg/cloud/multicore_plat.xml +++ b/examples/platforms/three_multicore_hosts.xml @@ -2,11 +2,11 @@ - - - + + + - + diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 05a1e898a0..48e3495c28 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -1100,6 +1100,7 @@ set(PLATFORMS_EXAMPLES examples/platforms/syscoord/median_harvard.syscoord examples/platforms/syscoord/median_meridian.syscoord examples/platforms/syscoord/median_p2psim.syscoord + examples/platforms/three_multicore_hosts.xml examples/platforms/torus_cluster.xml examples/platforms/two_hosts.xml examples/platforms/two_hosts_platform.xml