From c2f3f26a7e99acb812c6f6983953a04d9d10f025 Mon Sep 17 00:00:00 2001 From: suter Date: Fri, 23 May 2014 20:27:50 +0200 Subject: [PATCH] start testing remote I/Os --- examples/msg/io/CMakeLists.txt | 6 +- examples/msg/io/remote.c | 139 ++++++++++++++++++++ examples/msg/io/remote.tesh | 4 + examples/platforms/deployment_remote_io.xml | 16 +++ examples/platforms/remote_io.xml | 86 ++++++++++++ 5 files changed, 250 insertions(+), 1 deletion(-) create mode 100644 examples/msg/io/remote.c create mode 100644 examples/msg/io/remote.tesh create mode 100644 examples/platforms/deployment_remote_io.xml create mode 100644 examples/platforms/remote_io.xml diff --git a/examples/msg/io/CMakeLists.txt b/examples/msg/io/CMakeLists.txt index 13a39a6369..42c3f2bf3f 100644 --- a/examples/msg/io/CMakeLists.txt +++ b/examples/msg/io/CMakeLists.txt @@ -5,22 +5,25 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}") add_executable(file file.c) add_executable(file_unlink file_unlink.c) add_executable(storage storage.c) +add_executable(remote remote.c) ### Add definitions for compile if(NOT WIN32) target_link_libraries(file simgrid pthread) target_link_libraries(file_unlink simgrid pthread) target_link_libraries(storage simgrid pthread) + target_link_libraries(remote simgrid pthread) else() target_link_libraries(file simgrid) target_link_libraries(file_unlink simgrid) - target_link_libraries(storage simgrid) + target_link_libraries(remote simgrid) endif() set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/io.tesh ${CMAKE_CURRENT_SOURCE_DIR}/storage.tesh + ${CMAKE_CURRENT_SOURCE_DIR}/remote.tesh PARENT_SCOPE ) set(xml_files @@ -32,6 +35,7 @@ set(examples_src ${CMAKE_CURRENT_SOURCE_DIR}/file.c ${CMAKE_CURRENT_SOURCE_DIR}/file_unlink.c ${CMAKE_CURRENT_SOURCE_DIR}/storage.c + ${CMAKE_CURRENT_SOURCE_DIR}/remote.c PARENT_SCOPE ) set(bin_files diff --git a/examples/msg/io/remote.c b/examples/msg/io/remote.c new file mode 100644 index 0000000000..3a3efbcbed --- /dev/null +++ b/examples/msg/io/remote.c @@ -0,0 +1,139 @@ +/* Copyright (c) 2014. The SimGrid Team. + * 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. */ + +/** @addtogroup MSG_examples + * + * @subsection MSG_ex_resources Other resource kinds + * + * This section contains some sparse examples of how to use the other + * kind of resources, such as disk or GPU. These resources are quite + * experimental for now, but here we go anyway. + * + * - io/remote.c Example of delegated I/O operations + */ + +#include +#include +#include "msg/msg.h" +#include "surf/surf_private.h" + +int host(int argc, char *argv[]); + +XBT_LOG_NEW_DEFAULT_CATEGORY(remote_io, + "Messages specific for this io example"); + + +int host(int argc, char *argv[]){ + msg_file_t file = NULL; + const char* filename; +// msg_storage_t st; + sg_size_t read;//,write; + + file = MSG_file_open(argv[1], NULL); + filename = MSG_file_get_name(file); + XBT_INFO("Opened file '%s'",filename); + MSG_file_dump(file); + + // st = MSG_storage_get_by_name(st_name); + + XBT_INFO("Try to read %llu from '%s'",MSG_file_get_size(file),filename); + read = MSG_file_read(file, MSG_file_get_size(file)); + XBT_INFO("Have read %llu from '%s'",read,filename); + + MSG_file_close(file); + return 0; +} + +//int host(int argc, char *argv[]) +//{ +// msg_file_t file = NULL; +// sg_size_t read,write; +// msg_storage_t st; +// const char* st_name; +// +// if(!strcmp(MSG_process_get_name(MSG_process_self()),"0")){ +// file = MSG_file_open(FILENAME1, NULL); +// MSG_file_dump(file); +// st_name = "Disk4"; +// } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"1")) { +// file = MSG_file_open(FILENAME2, NULL); +// st_name = "Disk2"; +// } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"2")){ +// file = MSG_file_open(FILENAME3, NULL); +// st_name = "Disk3"; +// } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"3")){ +// file = MSG_file_open(FILENAME4, NULL); +// st_name = "Disk1"; +// } +// else xbt_die("FILENAME NOT DEFINED %s",MSG_process_get_name(MSG_process_self())); +// +// const char* filename = MSG_file_get_name(file); +// XBT_INFO("\tOpen file '%s'",filename); +// st = MSG_storage_get_by_name(st_name); +// +// XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu", +// filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st)); +// +// /* Try to read for 10MB */ +// read = MSG_file_read(file, 10000000); +// XBT_INFO("\tHave read %llu from '%s'",read,filename); +// +// /* Write 100KB in file from the current position, i.e, end of file or 10MB */ +// write = MSG_file_write(file, 100000); +// XBT_INFO("\tHave written %llu in '%s'. Size now is: %llu",write,filename, +// MSG_file_get_size(file)); +// +// +// XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu", +// filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st)); +// +// /* rewind to the beginning of the file */ +// XBT_INFO("\tComing back to the beginning of the stream for file '%s'", +// filename); +// MSG_file_seek(file, 0, SEEK_SET); +// +// /* Try to read 110KB */ +// read = MSG_file_read(file, 110000); +// XBT_INFO("\tHave read %llu from '%s' (of size %llu)",read,filename, +// MSG_file_get_size(file)); +// +// /* rewind once again to the beginning of the file */ +// XBT_INFO("\tComing back to the beginning of the stream for file '%s'", +// filename); +// MSG_file_seek(file, 0, SEEK_SET); +// +// /* Write 110KB in file from the current position, i.e, end of file or 10MB */ +// write = MSG_file_write(file, 110000); +// XBT_INFO("\tHave written %llu in '%s'. Size now is: %llu", write,filename, +// MSG_file_get_size(file)); +// +// XBT_INFO("\tCapacity of the storage element '%s' is stored on: %llu / %llu", +// filename, MSG_storage_get_used_size(st), MSG_storage_get_size(st)); +// +// XBT_INFO("\tClose file '%s'",filename); +// MSG_file_close(file); +// +// +// return 0; +//} + +int main(int argc, char **argv) +{ + int res; + + MSG_init(&argc, argv); + MSG_create_environment(argv[1]); + MSG_function_register("host", host); + MSG_launch_application(argv[2]); + + res = MSG_main(); + + XBT_INFO("Simulation time %g", MSG_get_clock()); + if (res == MSG_OK) + return 0; + else + return 1; +} diff --git a/examples/msg/io/remote.tesh b/examples/msg/io/remote.tesh new file mode 100644 index 0000000000..73eacef8ba --- /dev/null +++ b/examples/msg/io/remote.tesh @@ -0,0 +1,4 @@ +#! ./tesh + +$ ${bindir:=.}/io/remote_io ${srcdir:=.}/examples/platforms/remote_io.xml \ +${srcdir:=.}/examples/platforms/deployment_remote_io.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" diff --git a/examples/platforms/deployment_remote_io.xml b/examples/platforms/deployment_remote_io.xml new file mode 100644 index 0000000000..d957aee6af --- /dev/null +++ b/examples/platforms/deployment_remote_io.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/examples/platforms/remote_io.xml b/examples/platforms/remote_io.xml new file mode 100644 index 0000000000..d6a2a764ba --- /dev/null +++ b/examples/platforms/remote_io.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.20.1