Infrastructure and Tools - openucx/ucx GitHub Wiki

Tools

Infrastructure library (UCS)

  • Async
  • Configuration parsing
  • Memory hooks
  • Data structures:
    • Double linked list
    • Single linked queue
    • Fragment list - reordering
    • Memory pool
    • Index/Pointer array
    • SGLIB
  • Debugging:
    • Resolving address to file name and line number
    • Handling faults
    • Attaching a debugger to self
    • Logging
    • Assertions (compile-time and run-time)
    • Tracking memory used by different components
    • Profiling
  • Statistics
  • Fast time measurement
    • Read CPU timer
    • Convert time to sec/msec/usec/nsec
    • Timer queue
    • Timer wheel
  • Data types:
    • Callback
    • Class infrastructure
    • Component infrastructure
    • Spinlock
    • Error codes
  • System services:
    • Atomic operations
    • Fast bit operations (find first set bit, integer log2)
    • Get hostname
    • Generate UUID
    • Get CPU affinity
    • Read a whole file
    • Get page / huge page size
    • Allocate memory with SystemV
    • Get memory region access flags (from /proc/$$/maps)
    • Modify file flags with fcntl
    • Get process command line
    • Get CPU model, clock frequency
    • Get thread ID