nf_sched_ctx_cl.f90 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. ! StarPU --- Runtime system for heterogeneous multicore architectures.
  2. !
  3. ! Copyright (C) 2016-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
  4. !
  5. ! StarPU is free software; you can redistribute it and/or modify
  6. ! it under the terms of the GNU Lesser General Public License as published by
  7. ! the Free Software Foundation; either version 2.1 of the License, or (at
  8. ! your option) any later version.
  9. !
  10. ! StarPU is distributed in the hope that it will be useful, but
  11. ! WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. !
  14. ! See the GNU Lesser General Public License in COPYING.LGPL for more details.
  15. !
  16. module nf_sched_ctx_cl
  17. contains
  18. recursive subroutine cl_cpu_func_sched_ctx (buffers, cl_args) bind(C)
  19. use iso_c_binding ! C interfacing module
  20. use fstarpu_mod ! StarPU interfacing module
  21. implicit none
  22. interface
  23. function sleep(s) bind(C)
  24. use iso_c_binding
  25. integer(c_int) :: sleep
  26. integer(c_int), value, intent(in) :: s
  27. end function
  28. end interface
  29. type(c_ptr), value, intent(in) :: buffers, cl_args ! cl_args is unused
  30. integer(c_int),target :: id
  31. integer(c_int) :: worker_id
  32. integer(c_int) :: ret
  33. call fstarpu_unpack_arg(cl_args,(/ c_loc(id) /))
  34. ! ret = sleep(1)
  35. worker_id = fstarpu_worker_get_id()
  36. write(*,*) "task:", id, ", worker_id:", worker_id
  37. end subroutine cl_cpu_func_sched_ctx
  38. end module nf_sched_ctx_cl