-
Notifications
You must be signed in to change notification settings - Fork 161
HPC GAP TODO
Max Horn edited this page Jul 30, 2017
·
10 revisions
Things that need to be done in HPC-GAP. See also: List of open issues with HPC-GAP label
- complete kernel unification: issue #1216
- complete library unification: see HPC-GAP library unification TODO
See also:
- add readline support (see issue #467)
- add color prompt (see issue #39)
- fix copy&paste in terminal (see issue #1474]
- stable and highly usable single-threaded mode:
- [ ]reduce the performance difference in single threaded mode; right now HPC-GAP is slower than GAP in that mode; one major factor that supposedly is Boehm GC (for details, talk to Reimer, or also to Chris, Markus, Max)
- fix usage issues caused by e.g. things being in different regions, even though the user really only uses a single thread
- make it trivial to compile kernel extensions against HPC-GAP, e.g. from the
io
package (right now, one needs to set customCPPFLAGS
, otherwise headers for Boehm GC and libatomic_ops are not found; might also be a problem for GMP headers, if GAP built its own GMP) - ...
Some code in HPC-GAP could be of interest for "plain" GAP, too, and we should investigate backporting it. That includes adding tests and documentation.
- Object sets and maps: src/objset.c. src/objset.h. lib/objset.g
- Serialization code: src/hpc/serialize.c, src/hpc/serialize.h
- Object traversal code: src/hpc/traverse.c, src/hpc/traverse.h
- Boehm Garbage collector: optionally allow compiling GAP with Boehm GC instead of GASMAN (this would help us to understand and improve/reduce the negative impact of Boehm GC on performance in HPC-GAP, as it would be isolated from any threading related performance issues)
- Improve documentation for users
- verify description of new features, make sure it is correct and up-to-date, and helpful
- add tons of examples
- Add some HPC tutorials which show with somewhat non-trivial examples how to use various features together.
- Improve documentation for package authors
- e.g. provide instructions and help for "porting" packages to HPC-GAP
- Improve documentation for library & kernel developers
- e.g. instructions on how to integrate ward into build system for C kernel extensions...
- ... and perhaps also some guidelines for packages with C++ kernel extensions (which ward doesn't support)
- Some related (though possibly outdated or obsolete) references:
- Document various global #defines like HPCGAP and WARD_ENABLED in a prominent place
- Allow using system wide versions of Boehm GC and libatomic ops (see issue #1446)
- Figure out what to do with the MPI code that HPC-GAP brought along (based on ParGAP); see also the relevant pull requests and discussion on the GAP mailing list
- Adapt packages ...
- ... to at least load and be usable in single-threaded HPC-GAP ...
- ... to work in multi-threaded HPC-GAP ...
- ... to take advantage of multi-threaded HPC-GAP
- ...