perfmodel.jl 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. # StarPU --- Runtime system for heterogeneous multicore architectures.
  2. #
  3. # Copyright (C) 2020 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. perfmodel_list = Vector{starpu_perfmodel}()
  17. function starpu_perfmodel(; perf_type::starpu_perfmodel_type, symbol::String)
  18. output = starpu_perfmodel(zero)
  19. output.type = perf_type
  20. output.symbol = Cstring_from_String(symbol)
  21. # Performance models must not be garbage collected before starpu_shutdown
  22. # is called.
  23. lock(mutex)
  24. push!(perfmodel_list, output)
  25. unlock(mutex)
  26. return output
  27. end