@@ -93,6 +93,7 @@ struct umfIpcTest : umf_test::test,
93
93
providerParamsDestroy = provider_params_destroy;
94
94
memAccessor = accessor;
95
95
openedIpcCacheSize = getOpenedIpcCacheSize ();
96
+ numThreads = std::max (10 , (int )utils_get_num_cores ());
96
97
}
97
98
98
99
void TearDown () override { test::TearDown (); }
@@ -162,7 +163,8 @@ struct umfIpcTest : umf_test::test,
162
163
closeCount (0 ) {}
163
164
};
164
165
165
- static constexpr int NTHREADS = 10 ;
166
+ unsigned int numThreads;
167
+ static constexpr int CNTHREADS = 10 ;
166
168
stats_type stat;
167
169
MemoryAccessor *memAccessor = nullptr ;
168
170
@@ -188,9 +190,9 @@ struct umfIpcTest : umf_test::test,
188
190
ptrs.push_back (ptr);
189
191
}
190
192
191
- std::array<std::vector<umf_ipc_handle_t >, NTHREADS > ipcHandles;
193
+ std::array<std::vector<umf_ipc_handle_t >, CNTHREADS > ipcHandles;
192
194
193
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
195
+ umf_test::syncthreads_barrier syncthreads (numThreads );
194
196
195
197
auto getHandlesFn = [shuffle, &ipcHandles, &ptrs,
196
198
&syncthreads](size_t tid) {
@@ -212,7 +214,7 @@ struct umfIpcTest : umf_test::test,
212
214
}
213
215
};
214
216
215
- umf_test::parallel_exec (NTHREADS , getHandlesFn);
217
+ umf_test::parallel_exec (numThreads , getHandlesFn);
216
218
217
219
auto putHandlesFn = [&ipcHandles, &syncthreads](size_t tid) {
218
220
syncthreads ();
@@ -222,7 +224,7 @@ struct umfIpcTest : umf_test::test,
222
224
}
223
225
};
224
226
225
- umf_test::parallel_exec (NTHREADS , putHandlesFn);
227
+ umf_test::parallel_exec (numThreads , putHandlesFn);
226
228
227
229
for (void *ptr : ptrs) {
228
230
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -246,7 +248,7 @@ struct umfIpcTest : umf_test::test,
246
248
ptrs.push_back (ptr);
247
249
}
248
250
249
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
251
+ umf_test::syncthreads_barrier syncthreads (numThreads );
250
252
251
253
auto getPutHandlesFn = [shuffle, &ptrs, &syncthreads](size_t ) {
252
254
// Each thread gets a copy of the pointers to shuffle them
@@ -268,7 +270,7 @@ struct umfIpcTest : umf_test::test,
268
270
}
269
271
};
270
272
271
- umf_test::parallel_exec (NTHREADS , getPutHandlesFn);
273
+ umf_test::parallel_exec (numThreads , getPutHandlesFn);
272
274
273
275
for (void *ptr : ptrs) {
274
276
umf_result_t ret = umfPoolFree (pool.get (), ptr);
@@ -302,13 +304,13 @@ struct umfIpcTest : umf_test::test,
302
304
ipcHandles.push_back (ipcHandle);
303
305
}
304
306
305
- std::array<std::vector<void *>, NTHREADS > openedIpcHandles;
307
+ std::array<std::vector<void *>, CNTHREADS > openedIpcHandles;
306
308
umf_ipc_handler_handle_t ipcHandler = nullptr ;
307
309
ret = umfPoolGetIPCHandler (pool.get (), &ipcHandler);
308
310
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
309
311
ASSERT_NE (ipcHandler, nullptr );
310
312
311
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
313
+ umf_test::syncthreads_barrier syncthreads (numThreads );
312
314
313
315
auto openHandlesFn = [shuffle, &ipcHandles, &openedIpcHandles,
314
316
&syncthreads, ipcHandler](size_t tid) {
@@ -329,7 +331,7 @@ struct umfIpcTest : umf_test::test,
329
331
}
330
332
};
331
333
332
- umf_test::parallel_exec (NTHREADS , openHandlesFn);
334
+ umf_test::parallel_exec (numThreads , openHandlesFn);
333
335
334
336
auto closeHandlesFn = [&openedIpcHandles, &syncthreads](size_t tid) {
335
337
syncthreads ();
@@ -339,7 +341,7 @@ struct umfIpcTest : umf_test::test,
339
341
}
340
342
};
341
343
342
- umf_test::parallel_exec (NTHREADS , closeHandlesFn);
344
+ umf_test::parallel_exec (numThreads , closeHandlesFn);
343
345
344
346
for (auto ipcHandle : ipcHandles) {
345
347
ret = umfPutIPCHandle (ipcHandle);
@@ -386,7 +388,7 @@ struct umfIpcTest : umf_test::test,
386
388
ASSERT_EQ (ret, UMF_RESULT_SUCCESS);
387
389
ASSERT_NE (ipcHandler, nullptr );
388
390
389
- umf_test::syncthreads_barrier syncthreads (NTHREADS );
391
+ umf_test::syncthreads_barrier syncthreads (numThreads );
390
392
391
393
auto openCloseHandlesFn = [shuffle, &ipcHandles, &syncthreads,
392
394
ipcHandler](size_t ) {
@@ -408,7 +410,7 @@ struct umfIpcTest : umf_test::test,
408
410
}
409
411
};
410
412
411
- umf_test::parallel_exec (NTHREADS , openCloseHandlesFn);
413
+ umf_test::parallel_exec (numThreads , openCloseHandlesFn);
412
414
413
415
for (auto ipcHandle : ipcHandles) {
414
416
ret = umfPutIPCHandle (ipcHandle);
0 commit comments