Skip to content

Latest commit

 

History

History
28 lines (26 loc) · 3.08 KB

CHANGELOG.md

File metadata and controls

28 lines (26 loc) · 3.08 KB

ThreadPinning.jl Changelog

Version 1.0

  • Feature OpenBLAS: Almost all pinning and querying functions now have openblas_* analogs that provide (almost) all of the same features as for regular Julia threads. Example: openblas_pinthreads(:cores) now works. You can also visualize the placement of OpenBLAS threads via threadinfo(; blas=true). These functions are now also part of the official API (and SemVer).
  • Feature Visualizing affinities: Besides printaffinity and printaffinities there is now is a "pimped" variant visualize_affinity which uses the threadinfo layout to visualize the affinity.
  • Feature MPI: we've added dedicated support for pinning the Julia threads of MPI ranks, which are potentially distributed over multiple nodes.
  • Feature Distributed: we've added dedicated support for pinning the Julia threads of Julia workers (Distributed.jl), which are potentially spread over multiple nodes.
  • Breaking threadinfo(; blas=true) now shows the placement of OpenBLAS threads (same visualization as for regular Julia threads).
  • Breaking Pinning via environment variable (JULIA_PIN) now requires a pinthreads(...; force=false) call. This is because we've dropped the __init__ function entirely. The environment variables JULIA_LIKWID_PIN has been dropped for now. (Might be reintroduced later.)
  • Breaking Pinning via Julia preferences has been dropped entirely.
  • Breaking pinthreads_mpi has been renamed to mpi_pinthreads and has a different function signature.
  • Breaking The affinity printing functions are now called printaffinity and printaffinities.
  • Breaking The family of functions cpuids_* has been dropped. Use the logical accessors (e.g. node, socket, numa, etc.) instead.
  • Breaking The family of functions ncputhreads_per_* and ncores_per_* has been dropped. Use the logical accessors (e.g. node, socket, numa, etc.) in conjuction with length as a replacement.
  • Breaking The function setaffinity has been split into two functions setaffinity (takes a mask array) and setaffinity_cpuids (takes an array of CPU IDs).
  • Breaking The core-to-core latency benchmark functionality has been removed (will be moved to a new package soon).
  • Experimental For Julia >= 1.11, there is experimental support for pinning GC threads (threadpool=:gc).