MADNESS
0.10.1
madness
world
parsec.h
Go to the documentation of this file.
1
#ifndef MADNESS_PARSEC_INCLUED
2
#define MADNESS_PARSEC_INCLUED
3
4
#include <
madness/madness_config.h
>
5
6
#ifdef HAVE_PARSEC
7
8
#include <
parsec.h
>
9
#include <parsec/parsec_config.h>
10
#include <parsec/parsec_internal.h>
11
#include <parsec/mca/device/device.h>
12
#include <parsec/execution_stream.h>
13
#include <parsec/scheduling.h>
14
15
#include <iostream>
16
#include <optional>
17
18
namespace
madness
{
19
20
class
PoolTaskInterface;
21
22
class
ParsecRuntime
{
23
private
:
24
static
parsec_context_t
*
ctx
;
25
static
std::optional<bool>
made_new_ctx
;
26
static
parsec_taskpool_t
*tp;
27
static
bool
parsec_restart_taskpool
;
28
static
parsec_execution_stream_t
*
madness_comm_thread_es
;
29
#ifdef PARSEC_PROF_TRACE
30
static
int
taskpool_profiling_array
[2];
31
#endif
/* PARSEC_PROF_TRACE */
32
33
public
:
34
ParsecRuntime
(
int
nb_threads
);
35
~ParsecRuntime
();
36
37
static
parsec_context_t
*
context
();
38
static
void
initialize_with_existing_context
(
parsec_context_t
*
ctx
);
39
static
parsec_execution_stream_t
*
execution_stream
();
40
static
void
schedule
(PoolTaskInterface*
task
);
41
static
int
test
();
42
static
void
wait();
43
static
parsec_task_t
*
task
(
bool
is_high_priority,
void
*ptr);
44
static
void
delete_parsec_task
(
parsec_task_t
*t);
45
};
46
}
47
48
#endif
// HAVE_PARSEC
49
50
#endif
// MADNESS_PARSEC_INCLUED
madness_config.h
Macros and tools pertaining to the configuration of MADNESS.
madness
Namespace for all elements and tools of MADNESS.
Definition
DFParameters.h:10
madness::nonlinear_vector_solver
static XNonlinearSolver< std::vector< Function< T, NDIM > >, T, vector_function_allocator< T, NDIM > > nonlinear_vector_solver(World &world, const long nvec)
Definition
nonlinsol.h:371
parsec.h
task
int task(int i)
Definition
test_runtime.cpp:4
test
void test()
Definition
y.cc:696
Generated on Fri Apr 4 2025 13:55:21 for MADNESS by
1.9.8