YASK
Yet Another Stencil Kit: a software framework for creating HPC stencil code. Copyright 2014-2023 Intel Corporation.
|
Bootstrap factory to create a stencil solution. More...
#include <yask_kernel_api.hpp>
Public Member Functions | |
virtual std::string | get_version_string () |
Version information. | |
virtual yk_env_ptr | new_env () const |
Create an object to hold environment information. | |
virtual yk_env_ptr | new_env (MPI_Comm comm) const |
Create a yk_env object using the provided MPI communicator. | |
virtual yk_solution_ptr | new_solution (yk_env_ptr env) const |
Create a stencil solution. | |
virtual yk_solution_ptr | new_solution (yk_env_ptr env, const yk_solution_ptr source) const |
[Advanced] Create a stencil solution by copying the settings from another. | |
Bootstrap factory to create a stencil solution.
|
virtual |
Version information.
|
virtual |
Create an object to hold environment information.
Performs the following initialization steps:
MPI_COMM_WORLD
as the communicator.MPI_Init_thread(..., MPI_THREAD_SERIALIZED, ...)
or MPI_Init_thread(..., MPI_THREAD_MULTIPLE, ...)
.KMP_HOT_TEAMS_MODE=
and KMP_HOT_TEAMS_MAX_LEVEL=2
.Environment info is kept in a separate object to factilitate initializing the environment before creating a solution and sharing an environment among multiple solutions.
|
virtual |
Create a yk_env object using the provided MPI communicator.
Behaves like new_env(), but uses the provided MPI communicator instead of using MPI_COMM_WORLD
. MPI must be enabled and initialized before calling this function following the usage notes for new_env().
include "mpi.h"
should precede #include "yask_kernel_api.hpp"
to ensure proper MPI type definitions.
|
virtual |
Create a stencil solution.
A stencil solution contains all the vars and equations that were created during stencil compilation.
[in] | env | Pointer to env info. |
|
virtual |
[Advanced] Create a stencil solution by copying the settings from another.
All the settings that were specified via the yk_solution::set_*()
functions in the source solution will be copied to the new solution. This does not copy any vars, var settings, or var data; see yk_solution::fuse_vars().
[in] | env | Pointer to env info. |
[in] | source | Pointer to existing yk_solution from which the settings will be copied. |