Dynamic Load Balance 3.6.1+32-59d1
shmem_lewi_async.h
Go to the documentation of this file.
1/*********************************************************************************/
2/* Copyright 2009-2024 Barcelona Supercomputing Center */
3/* */
4/* This file is part of the DLB library. */
5/* */
6/* DLB is free software: you can redistribute it and/or modify */
7/* it under the terms of the GNU Lesser General Public License as published by */
8/* the Free Software Foundation, either version 3 of the License, or */
9/* (at your option) any later version. */
10/* */
11/* DLB is distributed in the hope that it will be useful, */
12/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14/* GNU Lesser General Public License for more details. */
15/* */
16/* You should have received a copy of the GNU Lesser General Public License */
17/* along with DLB. If not, see <https://www.gnu.org/licenses/>. */
18/*********************************************************************************/
19
20#ifndef SHMEM_LEWI_ASYNC_H
21#define SHMEM_LEWI_ASYNC_H
22
23#include "support/queues.h"
24
26
28
29size_t shmem_lewi_async__size(void);
30
32
33unsigned int shmem_lewi_async__get_num_requests(pid_t pid);
34
35int shmem_lewi_async__init(pid_t pid, unsigned int ncpus,
36 const char *shmem_key, int shm_size_multiplier);
37
38void shmem_lewi_async__finalize(pid_t pid, unsigned int *new_ncpus,
39 lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs);
40
41int shmem_lewi_async__lend_cpus(pid_t pid, unsigned int ncpus,
42 unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs,
43 unsigned int maxreqs, unsigned int *prev_requested);
44
45int shmem_lewi_async__lend_keep_cpus(pid_t pid, unsigned int new_ncpus,
46 lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs,
47 unsigned int *prev_requested);
48
49int shmem_lewi_async__reclaim(pid_t pid, unsigned int *new_ncpus,
50 lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs,
51 unsigned int prev_requested);
52
53int shmem_lewi_async__acquire_cpus(pid_t pid, unsigned int ncpus,
54 unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs,
55 unsigned int maxreqs);
56
57int shmem_lewi_async__borrow_cpus(pid_t pid, unsigned int ncpus,
58 unsigned int *new_ncpus);
59
60int shmem_lewi_async__reset(pid_t pid, unsigned int *new_ncpus,
61 lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs,
62 unsigned int *prev_requested);
63
64#endif /* SHMEM_LEWI_ASYNC_H */
int shmem_lewi_async__lend_keep_cpus(pid_t pid, unsigned int new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs, unsigned int *prev_requested)
Definition: shmem_lewi_async.c:433
int shmem_lewi_async__borrow_cpus(pid_t pid, unsigned int ncpus, unsigned int *new_ncpus)
Definition: shmem_lewi_async.c:696
int shmem_lewi_async__reclaim(pid_t pid, unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs, unsigned int prev_requested)
Definition: shmem_lewi_async.c:559
int shmem_lewi_async__acquire_cpus(pid_t pid, unsigned int ncpus, unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs)
Definition: shmem_lewi_async.c:634
int shmem_lewi_async__version(void)
Definition: shmem_lewi_async.c:116
void shmem_lewi_async__finalize(pid_t pid, unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs)
Definition: shmem_lewi_async.c:308
size_t shmem_lewi_async__size(void)
Definition: shmem_lewi_async.c:120
void shmem_lewi_async__remove_requests(pid_t pid)
Definition: shmem_lewi_async.c:132
bool shmem_lewi_async__exists(void)
Definition: shmem_lewi_async.c:112
unsigned int shmem_lewi_async__get_num_requests(pid_t pid)
Definition: shmem_lewi_async.c:142
int shmem_lewi_async__init(pid_t pid, unsigned int ncpus, const char *shmem_key, int shm_size_multiplier)
Definition: shmem_lewi_async.c:181
int shmem_lewi_async__reset(pid_t pid, unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs, unsigned int *prev_requested)
Definition: shmem_lewi_async.c:738
int shmem_lewi_async__lend_cpus(pid_t pid, unsigned int ncpus, unsigned int *new_ncpus, lewi_request_t *requests, unsigned int *nreqs, unsigned int maxreqs, unsigned int *prev_requested)
Definition: shmem_lewi_async.c:372
Definition: queues.h:35