MCPcopy Create free account
hub / github.com/SeisSol/SeisSol / main

Function main

auto_tuning/proxy/src/proxy_main.cpp:6–39  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4
5
6int main(int argc, char* argv[]) {
7 std::stringstream kernelHelp;
8 auto allowedKernels = Aux::getAllowedKernels();
9 kernelHelp << "Kernel: ";
10 for (const auto& kernel: allowedKernels) {
11 kernelHelp << ", " << kernel;
12 }
13
14 utils::Args args("The SeisSol proxy is used to benchmark the kernels used in the SeisSol earthquake simulation software.");
15 args.addAdditionalOption("cells", "Number of cells");
16 args.addAdditionalOption("timesteps", "Number of timesteps");
17 args.addAdditionalOption("kernel", kernelHelp.str());
18
19 if (args.parse(argc, argv) != utils::Args::Success) {
20 return -1;
21 }
22
23 ProxyConfig config{};
24 config.cells = args.getAdditionalArgument<unsigned>("cells");
25 config.timesteps = args.getAdditionalArgument<unsigned>("timesteps");
26 auto kernelStr = args.getAdditionalArgument<std::string>("kernel");
27
28 try {
29 config.kernel = Aux::str2kernel(kernelStr);
30 }
31 catch (std::runtime_error& error) {
32 std::cerr << error.what() << std::endl;
33 return -1;
34 }
35
36 auto output = runProxy(config);
37 Aux::displayOutput(output, kernelStr);
38 return 0;
39}

Callers

nothing calls this directly

Calls 3

runProxyFunction · 0.85
addAdditionalOptionMethod · 0.80
parseMethod · 0.45

Tested by

no test coverage detected