[PerlOMP] test 2
Brett Estrade, Principal
brett at acutisdata.com
Fri Jul 19 02:19:00 CEST 2024
Check this out,
#
!/usr/bin/env perl
use
strict;
use
warnings;
use
OpenMP::Simple;
use
OpenMP::Environment;
use
Inline (
C
=>
'
DATA
'
,
with
=>
qw/
OpenMP::Simple
/
,
);
my
$env
= OpenMP::Environment
->
new;
for
my
$want_num_threads
( 1 .. 8 ) {
$env
->
omp_num_threads(
$want_num_threads
);
$env
->
assert_omp_environment;
#
(optional) validates %ENV
#
call parallelized C function
my
$got_num_threads
= _check_num_threads();
printf
"
%0d threads spawned in
"
.
"
the OpenMP runtime, expecting %0d
\n
"
,
$got_num_threads
,
$want_num_threads
;
}
__DATA__
__C__
/* C function parallelized with OpenMP */
int _check_num_threads() {
int ret = 0;
PerlOMP_UPDATE_WITH_ENV__NUM_THREADS /* <~ MACRO x OpenMP::Simple */
#pragma omp parallel
{
#pragma omp single
ret = omp_get_num_threads();
}
return ret;
}
__END__
--
Brett Estrade
Principal/Owner
Coastal Computing Services, LLC
DBA Acutis Computing and Data Consultancy
https://coastalcomputingservices.net
https://acutisdata.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://perl-guilds.net/pipermail/openmp_perl-guilds.net/attachments/20240719/0ee520ea/attachment.htm>
More information about the OpenMP
mailing list