-/* Copyright (c) 2004-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2023. 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. */
#include <fstream>
#include <string>
-#ifdef _WIN32
-#include <windows.h>
-#endif
-
XBT_LOG_NEW_CATEGORY(surf, "All SURF categories");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf, "Logging specific to SURF (kernel)");
};
#if !HAVE_SMPI
-void surf_network_model_init_SMPI()
-{
- xbt_die("Please activate SMPI support in cmake to use the SMPI network model.");
-}
void surf_network_model_init_IB()
{
xbt_die("Please activate SMPI support in cmake to use the IB network model.");
{"Cas01", "Simplistic CPU model (time=size/speed).", &surf_cpu_model_init_Cas01},
};
+const std::vector<surf_model_description_t> surf_disk_model_description = {
+ {"S19", "Simplistic disk model.", &surf_disk_model_init_S19},
+};
+
const std::vector<surf_model_description_t> surf_host_model_description = {
- {"default", "Default host model. Currently, CPU:Cas01 and network:LV08 (with cross traffic enabled)",
+ {"default", "Default host model. Currently, CPU:Cas01, network:LV08 (with cross traffic enabled), and disk:S19",
&surf_host_model_init_current_default},
- {"compound", "Host model that is automatically chosen if you change the network and CPU models",
+ {"compound", "Host model that is automatically chosen if you change the CPU, network, and disk models",
&surf_host_model_init_compound},
- {"ptask_L07", "Host model somehow similar to Cas01+CM02 but allowing parallel tasks",
+ {"ptask_L07", "Host model somehow similar to Cas01+CM02+S19 but allowing parallel tasks",
&surf_host_model_init_ptask_L07},
- {"ptask_BMF", "Host model which implements BMF resource allocation and allows parallel tasks",
- &surf_host_model_init_ptask_BMF},
};
const std::vector<surf_model_description_t> surf_optimization_mode_description = {
{"Full", "Full update of remaining and variables. Slow but may be useful when debugging.", nullptr},
};
-const std::vector<surf_model_description_t> surf_disk_model_description = {
- {"default", "Simplistic disk model.", &surf_disk_model_init_default},
-};
-
/* returns whether #file_path is an absolute file path. Surprising, isn't it ? */
static bool is_absolute_file_path(const std::string& file_path)
{
-#ifdef _WIN32
- WIN32_FIND_DATA wfd = {0};
- HANDLE hFile = FindFirstFile(file_path.c_str(), &wfd);
-
- if (INVALID_HANDLE_VALUE == hFile)
- return false;
-
- FindClose(hFile);
- return true;
-#else
return (file_path.c_str()[0] == '/');
-#endif
}
std::ifstream* surf_ifsopen(const std::string& name)
const surf_model_description_t* find_model_description(const std::vector<surf_model_description_t>& table,
const std::string& name)
{
- auto pos = std::find_if(table.begin(), table.end(),
- [&name](const surf_model_description_t& item) { return item.name == name; });
- if (pos != table.end())
+ if (auto pos = std::find_if(table.begin(), table.end(),
+ [&name](const surf_model_description_t& item) { return item.name == name; });
+ pos != table.end())
return &*pos;
std::string sep;