You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add option to build Chapel with mimalloc as either the host or target allocator (#26246)
Adds the ability to set `CHPL_HOST_MEM` and/or `CHPL_TARGET_MEM` to
[`mimalloc`](https://github.com/microsoft/mimalloc/).
This PR only provides the option to use mimalloc, it does not change the
default from jemalloc
### Performance comparisons for `CHPL_TARGET_MEM` on linux64
#### test/performance/memory/microMemoryAllocation.chpl
Using `--trials=2_000_000`
- jemalloc: 1.38
- mimalloc: 7.79
#### test/studies/shootout/binary-trees/binarytrees-inner.chpl
Using `--n=21`
- jemalloc: 2.274
- mimalloc: 0.984
### Performance comparisons for `CHPL_HOST_MEM` on linux64
#### Compiling examples/hello.chpl
- jemalloc: 6.0s
- mimalloc: 5.1s
#### Compiling Arkouda
- jemalloc: 1879.510
- mimalloc: 1827.754
Major changes in this PR
- Add support to use mimalloc from `$CHPL_HOME/third-party/mimalloc` or
from the system
- Add a bundled mimalloc 2.1.7
Correctness testing
- [x] paratest with/without gasnet with CHPL_TARGET_MEM=mimalloc on
linux64
- [x] paratest with/without gasnet with CHPL_HOST_MEM=mimalloc on
linux64
- [x] `make check` with/without gasnet with CHPL_TARGET_MEM=mimalloc on
MacOS
- [x] `make check` with/without gasnet with CHPL_HOST_MEM=mimalloc on
MacOS
- [x] Test that fixed heap config with SS11 gives proper errors
Future work:
- enable fixed heap configs
- enable asan builds
[Reviewed by @jhh67]
0 commit comments