Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert platform-properties
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 10 Mar 2020 11:27:41 +0000 (12:27 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 10 Mar 2020 11:27:41 +0000 (12:27 +0100)
MANIFEST.in
examples/README.rst
examples/c/CMakeLists.txt
examples/c/platform-properties/platform-properties.c [moved from teshsuite/msg/platform-properties/platform-properties.c with 50% similarity]
examples/c/platform-properties/platform-properties.tesh [moved from teshsuite/msg/platform-properties/platform-properties.tesh with 92% similarity]
examples/c/platform-properties/platform-properties_d.xml [moved from teshsuite/msg/platform-properties/platform-properties_d.xml with 100% similarity]
teshsuite/msg/CMakeLists.txt

index 31e2667..ae4bdc3 100644 (file)
@@ -93,6 +93,9 @@ include examples/c/io-file-remote/io-file-remote.tesh
 include examples/c/io-file-remote/io-file-remote_d.xml
 include examples/c/platform-failures/platform-failures.c
 include examples/c/platform-failures/platform-failures.tesh
+include examples/c/platform-properties/platform-properties.c
+include examples/c/platform-properties/platform-properties.tesh
+include examples/c/platform-properties/platform-properties_d.xml
 include examples/c/plugin-hostload/plugin-hostload.c
 include examples/c/plugin-hostload/plugin-hostload.tesh
 include examples/deprecated/java/app/bittorrent/Common.java
@@ -673,9 +676,6 @@ include teshsuite/msg/get_sender/get_sender.c
 include teshsuite/msg/get_sender/get_sender.tesh
 include teshsuite/msg/io-file/io-file.c
 include teshsuite/msg/io-file/io-file.tesh
-include teshsuite/msg/platform-properties/platform-properties.c
-include teshsuite/msg/platform-properties/platform-properties.tesh
-include teshsuite/msg/platform-properties/platform-properties_d.xml
 include teshsuite/msg/task_destroy_cancel/task_destroy_cancel.c
 include teshsuite/msg/task_destroy_cancel/task_destroy_cancel.tesh
 include teshsuite/msg/task_listen_from/task_listen_from.c
index 8ae647f..57925db 100644 (file)
@@ -547,6 +547,13 @@ Interacting with the Platform
          - :cpp:func:`simgrid::s4u::Link::get_property()` and :cpp:func:`simgrid::s4u::Link::set_property()`
          - :cpp:func:`simgrid::s4u::NetZone::get_property()` and :cpp:func:`simgrid::s4u::NetZone::set_property()`
 
+      .. example-tab:: examples/c/platform-properties/platform-properties.c
+
+         - :cpp:func:`sg_actor_get_property()` and :cpp:func:`sg_actor_set_property()`
+         - :cpp:func:`sg_host_get_property()` and :cpp:func:sg_host_set_property()`
+         - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()`
+         - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()`
+
       .. group-tab:: XML
 
          **Deployment file:**
index 37de897..78f5ee0 100644 (file)
@@ -10,7 +10,7 @@ foreach(x
         exec-async exec-basic exec-dvfs exec-remote exec-waitany
         energy-exec energy-exec-ptask energy-vm
         io-disk-raw io-file-remote
-        platform-failures
+        platform-failures platform-properties
         plugin-hostload)
   add_executable       (${x}-c EXCLUDE_FROM_ALL ${x}/${x}.c)
   target_link_libraries(${x}-c simgrid)
@@ -55,6 +55,7 @@ set(xml_files     ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actor-create/actor-cr
                                ${CMAKE_CURRENT_SOURCE_DIR}/async-waitall/async-waitall_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/async-waitany/async-waitany_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/io-file-remote/io-file-remote_d.xml
+                               ${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/platform-properties_d.xml
                                PARENT_SCOPE)
 
 foreach(x
@@ -66,7 +67,7 @@ foreach(x
         exec-async exec-basic exec-dvfs exec-remote exec-waitany
         energy-exec energy-exec-ptask energy-vm
         io-disk-raw io-file-remote
-        platform-failures
+        platform-failures platform-properties
         plugin-hostload)
   ADD_TESH(c-${x} --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
                   --setenv bindir=${CMAKE_BINARY_DIR}/examples/c/${x}
@@ -3,14 +3,21 @@
 /* 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 "simgrid/msg.h"
+#include "simgrid/actor.h"
+#include "simgrid/engine.h"
+#include "simgrid/host.h"
+#include "simgrid/zone.h"
+
+#include "xbt/asserts.h"
+#include "xbt/dict.h"
+#include "xbt/log.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Property test");
 
 static void test_host(const char* hostname)
 {
-  msg_host_t thehost       = MSG_host_by_name(hostname);
-  xbt_dict_t props         = MSG_host_get_properties(thehost);
+  sg_host_t thehost        = sg_host_by_name(hostname);
+  xbt_dict_t props         = sg_host_get_properties(thehost);
   xbt_dict_cursor_t cursor = NULL;
   char* key;
   char* data;
@@ -23,61 +30,58 @@ static void test_host(const char* hostname)
     XBT_INFO("  Host property: '%s' -> '%s'", key, data);
 
   XBT_INFO("== Try to get a host property that does not exist");
-  value = MSG_host_get_property_value(thehost, noexist);
+  value = sg_host_get_property_value(thehost, noexist);
   xbt_assert(!value, "The key exists (it's not supposed to)");
 
   XBT_INFO("== Try to get a host property that does exist");
-  value = MSG_host_get_property_value(thehost, exist);
+  value = sg_host_get_property_value(thehost, exist);
   xbt_assert(value, "\tProperty %s is undefined (where it should)", exist);
   xbt_assert(!strcmp(value, "180"), "\tValue of property %s is defined to %s (where it should be 180)", exist, value);
   XBT_INFO("   Property: %s old value: %s", exist, value);
 
   XBT_INFO("== Trying to modify a host property");
-  MSG_host_set_property_value(thehost, exist, (char*)"250");
+  sg_host_set_property_value(thehost, exist, (char*)"250");
 
   /* Test if we have changed the value */
-  value = MSG_host_get_property_value(thehost, exist);
+  value = sg_host_get_property_value(thehost, exist);
   xbt_assert(value, "Property %s is undefined (where it should)", exist);
   xbt_assert(!strcmp(value, "250"), "Value of property %s is defined to %s (where it should be 250)", exist, value);
   XBT_INFO("   Property: %s old value: %s", exist, value);
 
   /* Restore the value for the next test */
-  MSG_host_set_property_value(thehost, exist, (char*)"180");
+  sg_host_set_property_value(thehost, exist, (char*)"180");
 
   xbt_dict_free(&props);
 }
 
-static int alice(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
+static void alice(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
 { /* Dump what we have on the current host */
   test_host("host1");
-  return 0;
 }
 
-static int carole(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
-{                       /* Dump what we have on a remote host */
-  MSG_process_sleep(1); // Wait for alice to be done with its experiment
+static void carole(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
+{                        /* Dump what we have on a remote host */
+  sg_actor_sleep_for(1); // Wait for alice to be done with its experiment
   test_host("host1");
-  return 0;
 }
 
-static int david(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
-{                       /* Dump what we have on a remote host */
-  MSG_process_sleep(2); // Wait for alice and carole to be done with its experiment
+static void david(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
+{                        /* Dump what we have on a remote host */
+  sg_actor_sleep_for(2); // Wait for alice and carole to be done with its experiment
   test_host("node-0.simgrid.org");
-  return 0;
 }
 
-static int bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
+static void bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
 {
   /* this host also tests the properties of the AS*/
-  const_sg_netzone_t root = MSG_zone_get_root();
+  const_sg_netzone_t root = sg_zone_get_root();
   XBT_INFO("== Print the properties of the AS");
-  XBT_INFO("   Process property: filename -> %s", MSG_zone_get_property_value(root, "filename"));
-  XBT_INFO("   Process property: date -> %s", MSG_zone_get_property_value(root, "date"));
-  XBT_INFO("   Process property: author -> %s", MSG_zone_get_property_value(root, "author"));
+  XBT_INFO("   Process property: filename -> %s", sg_zone_get_property_value(root, "filename"));
+  XBT_INFO("   Process property: date -> %s", sg_zone_get_property_value(root, "date"));
+  XBT_INFO("   Process property: author -> %s", sg_zone_get_property_value(root, "author"));
 
   /* Get the property list of current bob process */
-  xbt_dict_t props         = MSG_process_get_properties(MSG_process_self());
+  xbt_dict_t props         = sg_actor_get_properties(sg_actor_self());
   xbt_dict_cursor_t cursor = NULL;
   char* key;
   char* data;
@@ -90,41 +94,37 @@ static int bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
 
   XBT_INFO("== Try to get a process property that does not exist");
 
-  value = MSG_process_get_property_value(MSG_process_self(), noexist);
+  value = sg_actor_get_property_value(sg_actor_self(), noexist);
   xbt_assert(!value, "The property is defined (it shouldn't)");
   xbt_dict_free(&props);
-
-  return 0;
 }
 
 int main(int argc, char* argv[])
 {
-  unsigned int i;
-  msg_host_t host;
-
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                       "\tExample: %s msg_platform.xml msg_deployment.xml\n",
+  simgrid_init(&argc, argv);
+  xbt_assert(argc > 2,
+             "Usage: %s platform_file deployment_file\n"
+             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
              argv[0], argv[0]);
 
-  MSG_function_register("alice", alice);
-  MSG_function_register("bob", bob);
-  MSG_function_register("carole", carole);
-  MSG_function_register("david", david);
+  simgrid_register_function("alice", alice);
+  simgrid_register_function("bob", bob);
+  simgrid_register_function("carole", carole);
+  simgrid_register_function("david", david);
 
-  MSG_create_environment(argv[1]);
+  simgrid_load_platform(argv[1]);
+  size_t host_count = sg_host_count();
+  XBT_INFO("There are %zu hosts in the environment", host_count);
 
-  XBT_INFO("There are %zu hosts in the environment", MSG_get_host_number());
+  sg_host_t* hosts = sg_host_list();
+  for (size_t i = 0; i < host_count; i++)
+    XBT_INFO("Host '%s' runs at %.0f flops/s", sg_host_get_name(hosts[i]), sg_host_speed(hosts[i]));
 
-  xbt_dynar_t hosts = MSG_hosts_as_dynar();
-  xbt_dynar_foreach (hosts, i, host) {
-    XBT_INFO("Host '%s' runs at %.0f flops/s", MSG_host_get_name(host), MSG_host_get_speed(host));
-  }
-  xbt_dynar_free(&hosts);
+  free(hosts);
 
-  MSG_launch_application(argv[2]);
+  simgrid_load_deployment(argv[2]);
 
-  msg_error_t res = MSG_main();
+  simgrid_run();
 
-  return res != MSG_OK;
+  return 0;
 }
@@ -1,9 +1,9 @@
 #!/usr/bin/env tesh
 
-p Testing a MSG application with properties in the XML for Hosts, Links and Processes
+p Testing an application with properties in the XML for Hosts, Links and Processes
 
 ! output sort 19
-$ ${bindir:=.}/platform-properties ${platfdir}/prop.xml ${srcdir:=.}/platform-properties_d.xml  "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ ${bindir:=.}/platform-properties-c ${platfdir}/prop.xml platform-properties_d.xml  "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) There are 7 hosts in the environment
 > [  0.000000] (0:maestro@) Host 'host1' runs at 1000000000 flops/s
 > [  0.000000] (0:maestro@) Host 'host2' runs at 1000000000 flops/s
index 6efae26..eeaa9c0 100644 (file)
@@ -1,5 +1,5 @@
 # C examples
-foreach(x cloud-two-tasks get_sender platform-properties io-file task_listen_from task_destroy_cancel)
+foreach(x cloud-two-tasks get_sender io-file task_listen_from task_destroy_cancel)
   if(enable_msg)
     add_executable       (${x} EXCLUDE_FROM_ALL ${x}/${x}.c)
     target_link_libraries(${x} simgrid)
@@ -25,12 +25,11 @@ set(teshsuite_src ${teshsuite_src}  PARENT_SCOPE)
 set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/app-bittorrent.tesh          PARENT_SCOPE)
 set(bin_files     ${bin_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/generate.py                  PARENT_SCOPE)
 set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/app-bittorrent_d.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/platform-properties_d.xml
                                    PARENT_SCOPE)
 
 if(enable_msg)
   foreach(x app-bittorrent cloud-two-tasks get_sender task_destroy_cancel task_listen_from
-          io-file platform-properties)
+          io-file)
 
     ADD_TESH_FACTORIES(tesh-msg-${x} "raw"  --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
                                             --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg/${x}