Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Futures attempt to execute threads directly if those have not started executing #6099

Merged
merged 11 commits into from
Jul 31, 2023

Conversation

hkaiser
Copy link
Member

@hkaiser hkaiser commented Dec 7, 2022

  • adding new API function hpx::threads::get_outer_self_id

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commitd5655f812ad8af
HPX Datetime2022-05-31T12:57:29+00:002022-12-08T14:00:01+00:00
Datetime2022-05-31T15:13:01.357969+02:002022-12-08T15:17:48.968956+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Envfile
Hostnamenid01193nid01598

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch-

Info

PropertyBeforeAfter
HPX Commitd5655f812ad8af
HPX Datetime2022-05-31T12:57:29+00:002022-12-08T14:00:01+00:00
Datetime2022-05-31T15:13:18.026239+02:002022-12-08T15:18:06.081889+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Envfile
Hostnamenid01193nid01598

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)(=)
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad(=)(=)(=)
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commit71d8dbe12ad8af
HPX Datetime2021-11-10T19:14:21+00:002022-12-08T14:00:01+00:00
Datetime2021-11-10T20:28:18.266961+01:002022-12-08T15:18:21.342210+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Envfile
Hostnamenid00120nid01598

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@hkaiser hkaiser force-pushed the direct_scoped_execution branch 3 times, most recently from f470ea5 to 207af34 Compare December 8, 2022 17:30
@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-08T17:30:39+00:00
HPX Commitd5655f8138dae8
Datetime2022-05-31T15:13:01.357969+02:002022-12-08T18:48:17.538240+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Hostnamenid01193nid00097
Envfile

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch+

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-08T17:30:39+00:00
HPX Commitd5655f8138dae8
Datetime2022-05-31T15:13:18.026239+02:002022-12-08T18:48:33.891186+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Hostnamenid01193nid00097
Envfile

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)(=)
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad-(=)(=)
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2021-11-10T19:14:21+00:002022-12-08T17:30:39+00:00
HPX Commit71d8dbe138dae8
Datetime2021-11-10T20:28:18.266961+01:002022-12-08T18:48:49.290784+01:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Hostnamenid00120nid00097
Envfile

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@hkaiser hkaiser force-pushed the direct_scoped_execution branch 3 times, most recently from bdd2fb9 to eda6a19 Compare December 10, 2022 16:58
@hkaiser hkaiser marked this pull request as draft December 10, 2022 17:00
@hkaiser hkaiser force-pushed the direct_scoped_execution branch 3 times, most recently from f9d3a9c to 9e3b499 Compare December 11, 2022 00:04
@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commitd5655f864783ac
HPX Datetime2022-05-31T12:57:29+00:002022-12-10T23:51:35+00:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Hostnamenid01193nid01030
Datetime2022-05-31T15:13:01.357969+02:002022-12-11T01:06:43.939432+01:00
Clusternamedaintdaint
Envfile

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch+

Info

PropertyBeforeAfter
HPX Commitd5655f864783ac
HPX Datetime2022-05-31T12:57:29+00:002022-12-10T23:51:35+00:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Hostnamenid01193nid01030
Datetime2022-05-31T15:13:18.026239+02:002022-12-11T01:06:59.960993+01:00
Clusternamedaintdaint
Envfile

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)-(=)
Stream Benchmark - Scale(=)==
Stream Benchmark - Triad(=)(=)(=)
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commit71d8dbe64783ac
HPX Datetime2021-11-10T19:14:21+00:002022-12-10T23:51:35+00:00
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Hostnamenid00120nid01030
Datetime2021-11-10T20:28:18.266961+01:002022-12-11T01:07:15.316774+01:00
Clusternamedaintdaint
Envfile

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-11T00:04:52+00:00
HPX Commitd5655f81cb023b
Hostnamenid01193nid00111
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Envfile
Datetime2022-05-31T15:13:01.357969+02:002022-12-11T01:16:40.730928+01:00
Clusternamedaintdaint

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch=

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-11T00:04:52+00:00
HPX Commitd5655f81cb023b
Hostnamenid01193nid00111
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Envfile
Datetime2022-05-31T15:13:18.026239+02:002022-12-11T01:16:57.415126+01:00
Clusternamedaintdaint

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)-(=)
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad(=)(=)(=)
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2021-11-10T19:14:21+00:002022-12-11T00:04:52+00:00
HPX Commit71d8dbe1cb023b
Hostnamenid00120nid00111
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Envfile
Datetime2021-11-10T20:28:18.266961+01:002022-12-11T01:17:12.937465+01:00
Clusternamedaintdaint

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-11T17:51:39+00:00
HPX Commitd5655f8954baaf
Clusternamedaintdaint
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Datetime2022-05-31T15:13:01.357969+02:002022-12-11T19:07:45.281830+01:00
Envfile
Hostnamenid01193nid00016

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch=

Info

PropertyBeforeAfter
HPX Datetime2022-05-31T12:57:29+00:002022-12-11T17:51:39+00:00
HPX Commitd5655f8954baaf
Clusternamedaintdaint
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Datetime2022-05-31T15:13:18.026239+02:002022-12-11T19:08:01.937971+01:00
Envfile
Hostnamenid01193nid00016

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)(=)
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad(=)(=)-
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2021-11-10T19:14:21+00:002022-12-11T17:51:39+00:00
HPX Commit71d8dbe954baaf
Clusternamedaintdaint
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Datetime2021-11-10T20:28:18.266961+01:002022-12-11T19:08:17.388211+01:00
Envfile
Hostnamenid00120nid00016

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@hkaiser hkaiser force-pushed the direct_scoped_execution branch 2 times, most recently from f41533a to 731e192 Compare December 12, 2022 15:35
@Pansysk75
Copy link
Member

Pansysk75 commented Jul 28, 2023

Although disabling run_as_child decreases allocations by a lot, here is still a leak-like issue arising with hpx:ini=hpx.stacks.use_guard_pages=0. I'm investigating it rn.

Here's some plots running suspend_thread_external test, where the effect of setting the hint to none is very visible (not so much in the total memory footprint, but in the # of allocations). Also notice the accumulating nature of the # of mappings when using no guard pages, which I cannot explain:

mem_maps
mem_usage

@hkaiser
Copy link
Member Author

hkaiser commented Jul 28, 2023

That would explain why the suspend_runtime et.al. now fail even for builders that don't enable the run_as_child hint by default.

@Pansysk75
Copy link
Member

Pansysk75 commented Jul 28, 2023

That would explain why the suspend_runtime et.al. now fail even for builders that don't enable the run_as_child hint by default.

Here, does mmap-ing memory of (size + EXEC_PAGESIZE) make sense even if we are not using guard pages?

inline void* alloc_stack(std::size_t size)
{
void* real_stack =
::mmap(nullptr, size + EXEC_PAGESIZE, PROT_READ | PROT_WRITE,
#if defined(__APPLE__)
MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
#elif defined(__FreeBSD__)
MAP_PRIVATE | MAP_ANON,
#else
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE,
#endif
-1, 0);

Deallocation seems to not take EXEC_PAGESIZE into account if we don't use guard pages:

inline void free_stack(void* stack, std::size_t size)
{
#if defined(HPX_HAVE_THREAD_GUARD_PAGE)
if (use_guard_pages)
{
void** real_stack =
static_cast<void**>(stack) - (EXEC_PAGESIZE / sizeof(void*));
::munmap(static_cast<void*>(real_stack), size + EXEC_PAGESIZE);
}
else
{
::munmap(stack, size);
}
#else
::munmap(stack, size);
#endif
}

I'm not familiar with mmap and such, but this made me raise an eyebrow

@hkaiser
Copy link
Member Author

hkaiser commented Jul 28, 2023

Excellent catch! Could you patch that, please?

@Pansysk75
Copy link
Member

Excellent catch! Could you patch that, please?

Thank you, I'll do that :)

@hkaiser
Copy link
Member Author

hkaiser commented Jul 28, 2023

I'm also preparing a change right now that starts deleting stack segments of recycled threads once more then a certain number of threads have been recycled. That should keep the amount of memory allocated down a bit as well.

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)??(=)

Info

PropertyBeforeAfter
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T19:24:21+00:00
HPX Commitdcb5415f3f8ff1
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Datetime2023-05-10T14:50:18.616050-05:002023-07-28T14:30:05.676471-05:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Envfile
Clusternamerostamrostam

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch---

Info

PropertyBeforeAfter
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T19:24:21+00:00
HPX Commitdcb5415f3f8ff1
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Datetime2023-05-10T14:52:35.047119-05:002023-07-28T14:58:06.050998-05:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Envfile
Clusternamerostamrostam

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)(=)
Stream Benchmark - Scale=(=)(=)
Stream Benchmark - Triad(=)=(=)
Stream Benchmark - Copy(=)=(=)

Info

PropertyBeforeAfter
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T19:24:21+00:00
HPX Commitdcb5415f3f8ff1
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Datetime2023-05-10T14:52:52.237641-05:002023-07-28T14:58:23.094324-05:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Envfile
Clusternamerostamrostam

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKFORK_JOIN_EXECUTORPARALLEL_EXECUTORSCHEDULER_EXECUTOR
For Each(=)??(=)

Info

PropertyBeforeAfter
HPX Commitdcb54158e94a22
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T23:20:37+00:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Datetime2023-05-10T14:50:18.616050-05:002023-07-28T18:30:19.100757-05:00
Clusternamerostamrostam
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Envfile

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch---

Info

PropertyBeforeAfter
HPX Commitdcb54158e94a22
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T23:20:37+00:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Datetime2023-05-10T14:52:35.047119-05:002023-07-28T18:58:30.325592-05:00
Clusternamerostamrostam
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Envfile

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)=(=)
Stream Benchmark - Scale==(=)
Stream Benchmark - Triad(=)(=)(=)
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commitdcb54158e94a22
HPX Datetime2023-05-10T12:07:53+00:002023-07-28T23:20:37+00:00
Compiler/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1/opt/apps/llvm/13.0.1/bin/clang++ 13.0.1
Datetime2023-05-10T14:52:52.237641-05:002023-07-28T18:58:47.228080-05:00
Clusternamerostamrostam
Hostnamemedusa08.rostam.cct.lsu.edumedusa08.rostam.cct.lsu.edu
Envfile

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@hkaiser
Copy link
Member Author

hkaiser commented Jul 30, 2023

@Pansysk75 your fix did the trick! I will roll back my change that limits the numer of recycled stacks as it made the performance tests fail. Let's see if after that change things will be still green.

@Pansysk75
Copy link
Member

Pansysk75 commented Jul 30, 2023

@Pansysk75 your fix did the trick! I will roll back my change that limits the numer of recycled stacks as it made the performance tests fail. Let's see if after that change things will be still green.

Yes, things are much better.

The memory mappings now barely go above a few hundred, as the OS is able to merge the mapped areas more efficiently. Even with guard_pages=on, they are in the hundreds now (more than an order of magnitude less than before).
That seems very significant, so keep an eye out for any macroscopic effects it may have.

The only memory "concern" is the slightly higher memory usage when using direct execution (because of the immediate thread spawining), but it's not that significant. So the thread stack allocation / recycling change is not as crucial.

@hkaiser hkaiser force-pushed the direct_scoped_execution branch 3 times, most recently from b73ca59 to 498c7c8 Compare July 30, 2023 20:41
@hkaiser
Copy link
Member Author

hkaiser commented Jul 31, 2023

@Pansysk75 I think this is finally good to be merged. What do you think?

@hkaiser hkaiser added this to the 1.10.0 milestone Jul 31, 2023
@Pansysk75
Copy link
Member

@hkaiser There is a single timed-out test on daint (I had a look yesterday but didn't get anywhere), but other than that, nothing further to add.

@hkaiser
Copy link
Member Author

hkaiser commented Jul 31, 2023

@hkaiser There is a single timed-out test on daint (I had a look yesterday but didn't get anywhere), but other than that, nothing further to add.

I believe this is unrelated. Could be another case of the synchronization object going out of scope too early.

@hkaiser
Copy link
Member Author

hkaiser commented Jul 31, 2023

bors merge

@bors
Copy link

bors bot commented Jul 31, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

  • Bors

@bors bors bot merged commit c16ae10 into master Jul 31, 2023
68 of 76 checks passed
@bors bors bot deleted the direct_scoped_execution branch July 31, 2023 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants