GSoC Idea: Binding To Hwloc

Create a binding to the Hwloc library


Areas System/Machine Introspection
Good if student knows C, autoconf, Makefiles
Priority Low
Difficulty Medium
Benefits to the student ???
Benefits to the Tcl Community While the direct benefit is to CRIMP, this would be usable in all circumstances where a Tcl multi-processing application or package wishes to dynamically adapt itself to the execution environment and the available computing resources
Mentor Andreas Kupries, plus Jeff Squyres from the HWloc side

Project Description

This is a larger idea spun out of GSoC Idea: Extending CRIMP, notably the ticket "performance through parallelization / threading ". As a foundation for that we need some introspection into the machine Tcl runs on, i.e. number of processors, cores per processor, threads per core, etc. The HWloc library, aka "Portable Hardware Locality" provides all this information, and more.

The student is expected to

  • design a Tcl script API, i.e. a set of Tcl commands, which provide a script with the information collected by HWloc.
  • implement this API,
  • and create a TEA based buildsystem for the package. Options regarding the use of HWloc are
    • Link pre-existing HWloc shared libraries
    • Build the HWloc sources as part of the binding, i.e. make them integral to the package
    • Dynamically link to HWloc libraries, using dlopen(), etc.

References

Comments & Discussion

Some comments here