-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kimmy/vfd doc #230
Kimmy/vfd doc #230
Conversation
…to kimmy/vfd_doc
…to kimmy/vfd_doc
Can you remove the |
benchmarks/HermesVFD/README.md
Outdated
|
||
## Build Hermes | ||
```bash | ||
git clone https://github.com/jya-kmu/hdf5.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be the hermes url?
benchmarks/HermesVFD/README.md
Outdated
|
||
## Build hdf5 with Hermes VFD | ||
```bash | ||
git checkout https://github.com/jya-kmu/hdf5.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
checkout -> clone
In general I don't like putting files in source control that can easily be generated, especially a large number of files that are 98% similar. My preference would be to have a driver program (bash, python, cpp, whatever) that generates temporary run_vfd_bench --dpe round_robin --split yes --hierarchy ram,nvme --mount-points ./,/home/user/nvme ... The benefits of this approach would be:
I'm not saying you have to do this. It's just something to think about. |
That makes sense. It is not only for the VFD test. |
The approach I was thinking of for a config generator has the advantages of
Here's an outline. #include <regex>
#include <string>
// Create a config template with capitalized VARIABLE_NAMES as placeholders for
// config parameter values
std::string conf_template = R"(
num_devices = NUM_DEVICES;
num_targets = NUM_TARGETS;
capacities_mb = CAPACITIES;
block_sizes_kb = BLOCK_SIZES;
num_slabs = NUM_SLABS;
slab_unit_sizes = {
SLAB_UNIT_SIZES
};
desired_slab_percentages = {
SLAB_PERCENTAGES
};
etc ...
)";
int main() {
// Create a default Config
hermes::Config conf = hermes::InitDefaultConfig();
// Parse command line options and overwrite default Config values with the
// user-supplied values.
// Replace variables in the config template with the values in conf
conf_template = std::regex_replace(conf_template, std::regex("NUM_DEVICES"),
std::to_string(conf.num_devices));
conf_template = std::regex_replace(conf_template, std::regex("NUM_TARGETS"),
std::to_string(conf.num_targets));
// etc.
// Finally, write the final conf_template string to a file. The filename
// should be passed via command line option, with ./hermes.conf as the default
return 0;
} |
Documentation and config files for hdf5-iotest using Hermes VFD.