Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
start to rename cloud examples
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 4 Apr 2016 20:29:22 +0000 (22:29 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 4 Apr 2016 20:29:22 +0000 (22:29 +0200)
 + cloud-multicore is not tested: raise an issue with set_affinity

13 files changed:
.gitignore
examples/msg/CMakeLists.txt
examples/msg/cloud-capping/cloud-capping.c [moved from examples/msg/cloud/bound.c with 100% similarity]
examples/msg/cloud-capping/cloud-capping.tesh [new file with mode: 0644]
examples/msg/cloud-masterworker/cloud-masterworker.c [moved from examples/msg/cloud/master_worker_vm.c with 100% similarity]
examples/msg/cloud-masterworker/cloud-masterworker.tesh [moved from examples/msg/cloud/master_worker_vm.tesh with 97% similarity]
examples/msg/cloud-migration/cloud-migration.c [moved from examples/msg/cloud/migrate_vm.c with 100% similarity]
examples/msg/cloud-migration/cloud-migration.tesh [new file with mode: 0644]
examples/msg/cloud-multicore/cloud-multicore.c [moved from examples/msg/cloud/multicore.c with 100% similarity]
examples/msg/cloud-multicore/cloud-multicore.tesh [new file with mode: 0644]
examples/msg/cloud/CMakeLists.txt
examples/platforms/three_multicore_hosts.xml [moved from examples/msg/cloud/multicore_plat.xml with 65% similarity]
tools/cmake/DefinePackages.cmake

index 9d1bf7e..f998fdb 100644 (file)
@@ -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/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
 examples/msg/cloud/scale
 examples/msg/cloud/simple_vm
 examples/msg/cloud/two_tasks_vm
index 1021e69..3304d35 100644 (file)
@@ -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 
           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)
 
                                   ${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)
         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-capping/cloud-capping.tesh b/examples/msg/cloud-capping/cloud-capping.tesh
new file mode 100644 (file)
index 0000000..75aeb14
--- /dev/null
@@ -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)
@@ -2,7 +2,7 @@
 
 p Testing the Cloud API with a simple master/workers
 
 
 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
 > [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-migration/cloud-migration.tesh b/examples/msg/cloud-migration/cloud-migration.tesh
new file mode 100644 (file)
index 0000000..c66bb02
--- /dev/null
@@ -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/cloud-multicore.tesh b/examples/msg/cloud-multicore/cloud-multicore.tesh
new file mode 100644 (file)
index 0000000..ae23645
--- /dev/null
@@ -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
index 9e15831..bf9d37b 100644 (file)
@@ -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_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)
 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)
                                   ${CMAKE_CURRENT_SOURCE_DIR}/simple_vm.tesh         PARENT_SCOPE)
-set(xml_files     ${xml_files}    ${CMAKE_CURRENT_SOURCE_DIR}/multicore_plat.xml     PARENT_SCOPE)
similarity index 65%
rename from examples/msg/cloud/multicore_plat.xml
rename to examples/platforms/three_multicore_hosts.xml
index 23e7051..7372bf9 100644 (file)
@@ -2,11 +2,11 @@
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <AS id="siteA" routing="Full">
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
   <AS id="siteA" routing="Full">
-    <host id="PM0" speed="1E8" core="1"/>
-    <host id="PM1" speed="1E8" core="2"/>
-    <host id="PM2" speed="1E8" core="4"/>
+    <host id="PM0" speed="100Mf" core="1"/>
+    <host id="PM1" speed="100Mf" core="2"/>
+    <host id="PM2" speed="100Mf" core="4"/>
 
 
-    <link id="link1" bandwidth="12500000" latency="1E-2" />
+    <link id="link1" bandwidth="100Mbps" latency="10ms" />
 
     <route src="PM0" dst="PM1"><link_ctn id="link1"/></route>
     <route src="PM0" dst="PM2"><link_ctn id="link1"/></route>
 
     <route src="PM0" dst="PM1"><link_ctn id="link1"/></route>
     <route src="PM0" dst="PM2"><link_ctn id="link1"/></route>
index 05a1e89..48e3495 100644 (file)
@@ -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/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
   examples/platforms/torus_cluster.xml
   examples/platforms/two_hosts.xml
   examples/platforms/two_hosts_platform.xml