[Chapel Merge] Enable opt-in support for qthreads on arm based ma

Branch: refs/heads/main
Revision: 139298d
Author: ronawho
Link: Unavailable
Log Message:

Merge pull request #20115 from ronawho/mac-m1-qthreads

Enable opt-in support for qthreads on arm based macs

[reviewed by @benharsh]

qthreads 1.17 added initial support for arm based macs. This uses the
system ucontext instead of fast asm context switching, but it at least
enables support.

We're seeing much slower task creation compared to fifo (and ucontext on
x86 macs) so we're not changing the default tasking layer, but this at
least enables the ability to use qthreads to experiment more.

For the record, here's the timings I see for creating a task per core
10K times:

 chpl --fast test/parallel/taskCompare/elliot/empty-chpl-taskspawn.chpl -staskingMode=coforallT
./empty-chpl-taskspawn --numTrials=10_000 --printTimings
config time
x86 qt asm context 0.02s
x86 qt ucontext 0.15s
x86 fifo 0.17s
m1 qt ucontext 11.83s
m1 fifo 0.27s

Part of Cray/chapel-private#3374

Modified Files:
M third-party/qthread/Makefile

Compare: https://github.com/chapel-lang/chapel/compare/3ffc1fff4a23...139298d1ae27