Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
solverstack
mini-examples
starpu_example_dgemm
Commits
ec66bca6
Commit
ec66bca6
authored
Nov 26, 2021
by
Antoine Jego
Browse files
removed modules from repo + print to see where we crash
parent
4e99bf25
Changes
4
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
ec66bca6
...
...
@@ -3,3 +3,5 @@ build*/
.envrc
compile_commands.json
fstarpu_mpi_mod.f90
fstarpu_mod.f90
fstarpu_example_dgemm.f90
View file @
ec66bca6
...
...
@@ -54,6 +54,7 @@ program fstarpu_example_dgemm
integer
::
te
,
ts
,
tr
real
::
tf
,
gflops
write
(
*
,
*
)
"initializing starpu ..."
ret
=
fstarpu_init
(
C_NULL_PTR
)
if
(
ret
==
-19
)
then
stop
77
...
...
@@ -61,6 +62,7 @@ program fstarpu_example_dgemm
stop
1
end
if
write
(
*
,
*
)
"initializing starpu+MPI ..."
ret
=
fstarpu_mpi_init
(
1
)
if
(
ret
/
=
0
)
then
write
(
*
,
'("fstarpu_mpi_init status:",i4)'
)
ret
...
...
fstarpu_mod.f90
deleted
100644 → 0
View file @
4e99bf25
! StarPU --- Runtime system for heterogeneous multicore architectures.
!
! Copyright (C) 2016-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
!
! StarPU is free software; you can redistribute it and/or modify
! it under the terms of the GNU Lesser General Public License as published by
! the Free Software Foundation; either version 2.1 of the License, or (at
! your option) any later version.
!
! StarPU is distributed in the hope that it will be useful, but
! WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!
! See the GNU Lesser General Public License in COPYING.LGPL for more details.
!
module
fstarpu_mod
use
iso_c_binding
implicit
none
! Note: Constants truly are intptr_t, but are declared as c_ptr to be
! readily usable in c_ptr arrays to mimic variadic functions.
! Note: Bitwise or operator is provided by the .ior. overloaded operator
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_R
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_W
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_RW
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCRATCH
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_REDUX
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_MPI_REDUX
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_COMMUTE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SSEND
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_LOCALITY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_DATA_ARRAY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_DATA_MODE_ARRAY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CL_ARGS
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CL_ARGS_NFREE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TASK_DEPS_ARRAY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CALLBACK
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CALLBACK_WITH_ARG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CALLBACK_WITH_ARG_NFREE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CALLBACK_ARG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CALLBACK_ARG_NFREE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK_ARG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK_ARG_NFREE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK_POP
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK_POP_ARG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PROLOGUE_CALLBACK_POP_ARG_NFREE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_PRIORITY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_EXECUTE_ON_NODE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_EXECUTE_ON_DATA
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_EXECUTE_ON_WORKER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_WORKER_ORDER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_EXECUTE_WHERE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_HYPERVISOR_TAG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_POSSIBLY_PARALLEL
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_FLOPS
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TAG
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TAG_ONLY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_NAME
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TASK_COLOR
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TASK_SYNCHRONOUS
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_HANDLES_SEQUENTIAL_CONSISTENCY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TASK_END_DEP
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_NODE_SELECTION_POLICY
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_TASK_SCHED_DATA
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_VALUE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CPU_WORKER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CUDA_WORKER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_OPENCL_WORKER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_ANY_WORKER
integer
(
c_int
),
bind
(
C
)
::
FSTARPU_NMAXBUFS
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_POLICY_NAME
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_POLICY_STRUCT
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_POLICY_MIN_PRIO
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_POLICY_MAX_PRIO
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_HIERARCHY_LEVEL
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_NESTED
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_AWAKE_WORKERS
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_POLICY_INIT
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SCHED_CTX_USER_DATA
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_NOWHERE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CPU
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CUDA
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_OPENCL
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CODELET_SIMGRID_EXECUTE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CODELET_SIMGRID_EXECUTE_AND_INJECT
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_CUDA_ASYNC
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_OPENCL_ASYNC
!type(c_ptr), bind(C) :: FSTARPU_PER_WORKER
!type(c_ptr), bind(C) :: FSTARPU_PER_ARCH
!type(c_ptr), bind(C) :: FSTARPU_PER_COMMON
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_HISTORY_BASED
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_REGRESSION_BASED
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_NL_REGRESSION_BASED
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_MULTIPLE_REGRESSION_BASED
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SEQ
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SPMD
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_FORKJOIN
! (some) portable iso_c_binding types
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_DOUBLE
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_FLOAT
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_CHAR
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_INT
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_INTPTR_T
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_PTR
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_C_SIZE_T
! (some) native Fortran types
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_CHARACTER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_INTEGER
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_INT4
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_INT8
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_REAL
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_REAL4
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_REAL8
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_DOUBLE_PRECISION
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_COMPLEX
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_COMPLEX4
type
(
c_ptr
),
bind
(
C
)
::
FSTARPU_SZ_COMPLEX8
integer
(
c_int
),
bind
(
C
),
target
::
FSTARPU_DEFAULT_PRIO
interface
operator
(
.ior.
)
procedure
or_cptrs
end
interface
operator
(
.ior.
)
interface
! == starpu.h ==
! void starpu_conf_init(struct starpu_conf *conf);
subroutine
fstarpu_conf_init
(
conf
)
bind
(
C
,
name
=
"starpu_conf_init"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
end
subroutine
fstarpu_conf_init
function
fstarpu_conf_allocate
()
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
)
::
fstarpu_conf_allocate
end
function
fstarpu_conf_allocate
subroutine
fstarpu_conf_free
(
conf
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
end
subroutine
fstarpu_conf_free
subroutine
fstarpu_conf_set_sched_policy_name
(
conf
,
policy_name
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_char
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
character
(
c_char
),
intent
(
in
)
::
policy_name
end
subroutine
fstarpu_conf_set_sched_policy_name
subroutine
fstarpu_conf_set_min_prio
(
conf
,
min_prio
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
integer
(
c_int
),
value
,
intent
(
in
)
::
min_prio
end
subroutine
fstarpu_conf_set_min_prio
subroutine
fstarpu_conf_set_max_prio
(
conf
,
max_prio
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
integer
(
c_int
),
value
,
intent
(
in
)
::
max_prio
end
subroutine
fstarpu_conf_set_max_prio
subroutine
fstarpu_conf_set_ncpu
(
conf
,
ncpu
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
integer
(
c_int
),
value
,
intent
(
in
)
::
ncpu
end
subroutine
fstarpu_conf_set_ncpu
subroutine
fstarpu_conf_set_ncuda
(
conf
,
ncuda
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
integer
(
c_int
),
value
,
intent
(
in
)
::
ncuda
end
subroutine
fstarpu_conf_set_ncuda
subroutine
fstarpu_conf_set_nopencl
(
conf
,
nopencl
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
conf
integer
(
c_int
),
value
,
intent
(
in
)
::
nopencl
end
subroutine
fstarpu_conf_set_nopencl
! starpu_init: see fstarpu_init
! starpu_initialize: see fstarpu_init
! void starpu_pause(void);
subroutine
fstarpu_pause
()
bind
(
C
,
name
=
"starpu_pause"
)
end
subroutine
fstarpu_pause
! void starpu_resume(void);
subroutine
fstarpu_resume
()
bind
(
C
,
name
=
"starpu_resume"
)
end
subroutine
fstarpu_resume
! int starpu_is_paused(void);
function
fstarpu_is_paused
()
bind
(
C
,
name
=
"starpu_is_paused"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_is_paused
end
function
fstarpu_is_paused
! void starpu_shutdown(void);
subroutine
fstarpu_shutdown
()
bind
(
C
,
name
=
"starpu_shutdown"
)
end
subroutine
fstarpu_shutdown
! starpu_topology_print
subroutine
fstarpu_topology_print
()
bind
(
C
)
end
subroutine
fstarpu_topology_print
! int starpu_asynchronous_copy_disabled(void);
function
fstarpu_asynchronous_copy_disabled
()
bind
(
C
,
name
=
"starpu_asynchronous_copy_disabled"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_asynchronous_copy_disabled
end
function
fstarpu_asynchronous_copy_disabled
! int starpu_asynchronous_cuda_copy_disabled(void);
function
fstarpu_asynchronous_cuda_copy_disabled
()
bind
(
C
,
name
=
"starpu_asynchronous_cuda_copy_disabled"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_asynchronous_cuda_copy_disabled
end
function
fstarpu_asynchronous_cuda_copy_disabled
! int starpu_asynchronous_opencl_copy_disabled(void);
function
fstarpu_asynchronous_opencl_copy_disabled
()
bind
(
C
,
name
=
"starpu_asynchronous_opencl_copy_disabled"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_asynchronous_opencl_copy_disabled
end
function
fstarpu_asynchronous_opencl_copy_disabled
! void starpu_display_stats();
subroutine
fstarpu_display_stats
()
bind
(
C
,
name
=
"starpu_display_stats"
)
end
subroutine
fstarpu_display_stats
! void starpu_get_version(int *major, int *minor, int *release);
subroutine
fstarpu_get_version
(
major
,
minor
,
release
)
bind
(
C
,
name
=
"starpu_get_version"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
),
intent
(
out
)
::
major
,
minor
,
release
end
subroutine
fstarpu_get_version
! == starpu_worker.h ==
! unsigned starpu_worker_get_count(void);
function
fstarpu_worker_get_count
()
bind
(
C
,
name
=
"starpu_worker_get_count"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_get_count
end
function
fstarpu_worker_get_count
! unsigned starpu_combined_worker_get_count(void);
function
fstarpu_combined_worker_get_count
()
bind
(
C
,
name
=
"starpu_combined_worker_get_count"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_combined_worker_get_count
end
function
fstarpu_combined_worker_get_count
! unsigned starpu_worker_is_combined_worker(int id);
function
fstarpu_worker_is_combined_worker
(
id
)
bind
(
C
,
name
=
"starpu_worker_is_combined_worker"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_is_combined_worker
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_is_combined_worker
! unsigned starpu_cpu_worker_get_count(void);
function
fstarpu_cpu_worker_get_count
()
bind
(
C
,
name
=
"starpu_cpu_worker_get_count"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_cpu_worker_get_count
end
function
fstarpu_cpu_worker_get_count
! unsigned starpu_cuda_worker_get_count(void);
function
fstarpu_cuda_worker_get_count
()
bind
(
C
,
name
=
"starpu_cuda_worker_get_count"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_cuda_worker_get_count
end
function
fstarpu_cuda_worker_get_count
! unsigned starpu_opencl_worker_get_count(void);
function
fstarpu_opencl_worker_get_count
()
bind
(
C
,
name
=
"starpu_opencl_worker_get_count"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_opencl_worker_get_count
end
function
fstarpu_opencl_worker_get_count
! int starpu_worker_get_id(void);
function
fstarpu_worker_get_id
()
bind
(
C
,
name
=
"starpu_worker_get_id"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_get_id
end
function
fstarpu_worker_get_id
! _starpu_worker_get_id_check
! starpu_worker_get_id_check
! int starpu_worker_get_bindid(int workerid);
function
fstarpu_worker_get_bindid
(
id
)
bind
(
C
,
name
=
"starpu_worker_get_bindid"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_get_bindid
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_get_bindid
! int starpu_combined_worker_get_id(void);
function
fstarpu_combined_worker_get_id
()
bind
(
C
,
name
=
"starpu_combined_worker_get_id"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_combined_worker_get_id
end
function
fstarpu_combined_worker_get_id
! int starpu_combined_worker_get_size(void);
function
fstarpu_combined_worker_get_size
()
bind
(
C
,
name
=
"starpu_combined_worker_get_size"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_combined_worker_get_size
end
function
fstarpu_combined_worker_get_size
! int starpu_combined_worker_get_rank(void);
function
fstarpu_combined_worker_get_rank
()
bind
(
C
,
name
=
"starpu_combined_worker_get_rank"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_combined_worker_get_rank
end
function
fstarpu_combined_worker_get_rank
! enum starpu_worker_archtype starpu_worker_get_type(int id);
function
fstarpu_worker_get_type
(
id
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
type
(
c_ptr
)
::
fstarpu_worker_get_type
! C function returns c_intptr_t
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_get_type
! int starpu_worker_get_count_by_type(enum starpu_worker_archtype type);
function
fstarpu_worker_get_count_by_type
(
typeid
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_worker_get_count_by_type
type
(
c_ptr
),
value
,
intent
(
in
)
::
typeid
! c_intptr_t expected by C func
end
function
fstarpu_worker_get_count_by_type
! int starpu_worker_get_ids_by_type(enum starpu_worker_archtype type, int *workerids, int maxsize);
function
fstarpu_worker_get_ids_by_type
(
typeid
,
workerids
,
maxsize
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_worker_get_ids_by_type
type
(
c_ptr
),
value
,
intent
(
in
)
::
typeid
! c_intptr_t expected by C func
integer
(
c_int
),
intent
(
out
)
::
workerids
(
*
)
integer
(
c_int
),
value
,
intent
(
in
)
::
maxsize
end
function
fstarpu_worker_get_ids_by_type
! int starpu_worker_get_by_type(enum starpu_worker_archtype type, int num);
function
fstarpu_worker_get_by_type
(
typeid
,
num
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_worker_get_by_type
type
(
c_ptr
),
value
,
intent
(
in
)
::
typeid
! c_intptr_t expected by C func
integer
(
c_int
),
value
,
intent
(
in
)
::
num
end
function
fstarpu_worker_get_by_type
! int starpu_worker_get_by_devid(enum starpu_worker_archtype type, int devid);
function
fstarpu_worker_get_by_devid
(
typeid
,
devid
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_worker_get_by_devid
type
(
c_ptr
),
value
,
intent
(
in
)
::
typeid
! c_intptr_t expected by C func
integer
(
c_int
),
value
,
intent
(
in
)
::
devid
end
function
fstarpu_worker_get_by_devid
! void starpu_worker_get_name(int id, char *dst, size_t maxlen);
subroutine
fstarpu_worker_get_name
(
id
,
dst
,
maxlen
)
bind
(
C
,
name
=
"starpu_worker_get_name"
)
use
iso_c_binding
,
only
:
c_int
,
c_char
,
c_size_t
integer
(
c_int
),
value
,
intent
(
in
)
::
id
character
(
c_char
),
intent
(
out
)
::
dst
(
*
)
integer
(
c_size_t
),
value
,
intent
(
in
)
::
maxlen
end
subroutine
fstarpu_worker_get_name
! int starpu_worker_get_devid(int id);
function
fstarpu_worker_get_devid
(
id
)
bind
(
C
,
name
=
"starpu_worker_get_devid"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_get_devid
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_get_devid
! int starpu_worker_get_mp_nodeid(int id);
function
fstarpu_worker_get_mp_nodeid
(
id
)
bind
(
C
,
name
=
"starpu_worker_get_mp_nodeid"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_get_mp_nodeid
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_get_mp_nodeid
! struct starpu_tree* starpu_workers_get_tree(void);
! unsigned starpu_worker_get_sched_ctx_list(int worker, unsigned **sched_ctx);
! unsigned starpu_worker_is_blocked(int workerid);
function
fstarpu_worker_is_blocked
(
id
)
bind
(
C
,
name
=
"starpu_worker_is_blocked"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_is_blocked
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_is_blocked
! unsigned starpu_worker_is_slave_somewhere(int workerid);
function
fstarpu_worker_is_slave_somewhere
(
id
)
bind
(
C
,
name
=
"starpu_worker_is_slave_somewhere"
)
use
iso_c_binding
,
only
:
c_int
integer
(
c_int
)
::
fstarpu_worker_is_slave_somewhere
integer
(
c_int
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_worker_is_slave_somewhere
! char *starpu_worker_get_type_as_string(enum starpu_worker_archtype type);
subroutine
fstarpu_worker_get_type_as_string
(
typeid
,
dst
,
maxlen
)
bind
(
C
)
use
iso_c_binding
,
only
:
c_ptr
,
c_char
,
c_size_t
type
(
c_ptr
),
value
,
intent
(
in
)
::
typeid
! c_intptr_t expected by C func
character
(
c_char
),
intent
(
out
)
::
dst
(
*
)
integer
(
c_size_t
),
value
,
intent
(
in
)
::
maxlen
end
subroutine
fstarpu_worker_get_type_as_string
! int starpu_bindid_get_workerids(int bindid, int **workerids);
! == starpu_task.h ==
function
fstarpu_task_create_sync
(
handle
,
mode
)
bind
(
C
,
name
=
"starpu_task_create_sync"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
)
::
fstarpu_task_create_sync
type
(
c_ptr
),
value
,
intent
(
in
)
::
handle
type
(
c_ptr
),
value
,
intent
(
in
)
::
mode
end
function
fstarpu_task_create_sync
! void starpu_tag_declare_deps_array(starpu_tag_t id, unsigned ndeps, starpu_tag_t *array);
subroutine
fstarpu_tag_declare_deps_array
(
id
,
ndeps
,
tag_array
)
bind
(
C
,
name
=
"starpu_tag_declare_deps_array"
)
use
iso_c_binding
,
only
:
c_int
,
c_long_long
integer
(
c_int
),
value
,
intent
(
in
)
::
id
integer
(
c_int
),
value
,
intent
(
in
)
::
ndeps
integer
(
c_long_long
),
intent
(
in
)
::
tag_array
(
*
)
end
subroutine
fstarpu_tag_declare_deps_array
! void starpu_task_declare_deps(starpu_tag_t id, unsigned ndeps, ...);
subroutine
fstarpu_task_declare_deps
(
task
,
ndeps
,
root_task
)
bind
(
C
,
name
=
"starpu_task_declare_deps"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
integer
(
c_int
),
value
,
intent
(
in
)
::
ndeps
type
(
c_ptr
),
value
,
intent
(
in
)
::
root_task
end
subroutine
fstarpu_task_declare_deps
! void starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[]);
subroutine
fstarpu_task_declare_deps_array
(
task
,
ndeps
,
task_array
)
bind
(
C
,
name
=
"starpu_task_declare_deps_array"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
integer
(
c_int
),
value
,
intent
(
in
)
::
ndeps
type
(
c_ptr
),
intent
(
in
)
::
task_array
(
*
)
end
subroutine
fstarpu_task_declare_deps_array
! void starpu_task_end_dep_add(struct starpu_task *t, int nb_deps)
subroutine
fstarpu_task_end_dep_add
(
task
,
nb_deps
)
&
bind
(
C
,
name
=
"starpu_task_end_dep_add"
)
use
iso_c_binding
,
only
:
c_ptr
,
c_int
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
integer
(
c_int
),
value
,
intent
(
in
)
::
nb_deps
end
subroutine
fstarpu_task_end_dep_add
! void starpu_task_end_dep_release(struct starpu_task *t)
subroutine
fstarpu_task_end_dep_release
(
task
)
&
bind
(
C
,
name
=
"starpu_task_end_dep_release"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
subroutine
fstarpu_task_end_dep_release
! int starpu_tag_wait(starpu_tag_t id);
function
fstarpu_tag_wait
(
id
)
bind
(
C
,
name
=
"starpu_tag_wait"
)
use
iso_c_binding
,
only
:
c_int
,
c_long_long
integer
(
c_int
)
::
fstarpu_tag_wait
integer
(
c_long_long
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_tag_wait
! int starpu_tag_wait_array(unsigned ntags, starpu_tag_t *id);
function
fstarpu_tag_wait_array
(
ntags
,
tag_array
)
bind
(
C
,
name
=
"starpu_tag_wait_array"
)
use
iso_c_binding
,
only
:
c_int
,
c_long_long
integer
(
c_int
)
::
fstarpu_tag_wait_array
integer
(
c_int
),
value
,
intent
(
in
)
::
ntags
integer
(
c_long_long
),
intent
(
in
)
::
tag_array
(
*
)
end
function
fstarpu_tag_wait_array
! void starpu_tag_notify_from_apps(starpu_tag_t id);
subroutine
fstarpu_tag_notify_from_apps
(
id
)
bind
(
C
,
name
=
"starpu_tag_notify_from_apps"
)
use
iso_c_binding
,
only
:
c_long_long
integer
(
c_long_long
),
value
,
intent
(
in
)
::
id
end
subroutine
fstarpu_tag_notify_from_apps
! void starpu_tag_restart(starpu_tag_t id);
subroutine
fstarpu_tag_restart
(
id
)
bind
(
C
,
name
=
"starpu_tag_restart"
)
use
iso_c_binding
,
only
:
c_long_long
integer
(
c_long_long
),
value
,
intent
(
in
)
::
id
end
subroutine
fstarpu_tag_restart
! void starpu_tag_remove(starpu_tag_t id);
subroutine
fstarpu_tag_remove
(
id
)
bind
(
C
,
name
=
"starpu_tag_remove"
)
use
iso_c_binding
,
only
:
c_long_long
integer
(
c_long_long
),
value
,
intent
(
in
)
::
id
end
subroutine
fstarpu_tag_remove
! struct starpu_task *starpu_tag_get_task(starpu_tag_t id);
function
fstarpu_tag_get_task
(
id
)
bind
(
C
,
name
=
"starpu_tag_get_task"
)
use
iso_c_binding
,
only
:
c_ptr
,
c_long_long
type
(
c_ptr
)
::
fstarpu_tag_get_task
integer
(
c_long_long
),
value
,
intent
(
in
)
::
id
end
function
fstarpu_tag_get_task
! void starpu_task_init(struct starpu_task *task);
subroutine
fstarpu_task_init
(
task
)
bind
(
C
,
name
=
"starpu_task_init"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
subroutine
fstarpu_task_init
! void starpu_task_clean(struct starpu_task *task);
subroutine
fstarpu_task_clean
(
task
)
bind
(
C
,
name
=
"starpu_task_clean"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
subroutine
fstarpu_task_clean
! struct starpu_task *starpu_task_create(void) STARPU_ATTRIBUTE_MALLOC;
function
fstarpu_task_create
()
bind
(
C
,
name
=
"starpu_task_create"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
)
::
fstarpu_task_create
end
function
fstarpu_task_create
! void starpu_task_destroy(struct starpu_task *task);
subroutine
fstarpu_task_destroy
(
task
)
bind
(
C
,
name
=
"starpu_task_destroy"
)
use
iso_c_binding
,
only
:
c_ptr
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
subroutine
fstarpu_task_destroy
! int starpu_task_submit(struct starpu_task *task) STARPU_WARN_UNUSED_RESULT;
function
fstarpu_task_submit
(
task
)
bind
(
C
,
name
=
"starpu_task_submit"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_task_submit
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
function
fstarpu_task_submit
! int starpu_task_submit_to_ctx(struct starpu_task *task, unsigned sched_ctx_id);
function
fstarpu_task_submit_to_ctx
(
task
,
sched_ctx_id
)
bind
(
C
,
name
=
"starpu_task_submit_to_ctx"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_task_submit_to_ctx
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
integer
(
c_int
),
value
,
intent
(
in
)
::
sched_ctx_id
end
function
fstarpu_task_submit_to_ctx
! int starpu_task_finished(struct starpu_task *task) STARPU_WARN_UNUSED_RESULT;
function
fstarpu_task_finished
(
task
)
bind
(
C
,
name
=
"starpu_task_finished"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_task_finished
type
(
c_ptr
),
value
,
intent
(
in
)
::
task
end
function
fstarpu_task_finished
! int starpu_task_wait(struct starpu_task *task) STARPU_WARN_UNUSED_RESULT;
function
fstarpu_task_wait
(
task
)
bind
(
C
,
name
=
"starpu_task_wait"
)
use
iso_c_binding
,
only
:
c_int
,
c_ptr
integer
(
c_int
)
::
fstarpu_task_wait
type
(
c_ptr
),
value
,
intent
(
in
)
::
task