One of the reasons I keep dropping hints about #perlffi , #pdl and #openmp is that one can literally have five multithreading frameworks in the same #perl application of a master process: 1) PDL, and FFI intefacing with 2) #Fortran coarrays, 3) Fortran openmp, 4) #c openmp and 5) #cplusplus #openmp. All these frameworks can share memory addresses for array and vector objects, and #perl aided by #PerlAlien makes the authoring of the high-level code a pleasure ! https://hgpu.org/?p=29403
submitted by /u/ReplacementSlight413
[link] [comments]
Optimizing the Weather Research and Forecasting Model with OpenMP Offload and Codee
Currently, the Weather Research and Forecasting model (WRF) utilizes shared memory (OpenMP) and distributed memory (MPI) parallelisms. To take advantage of GPU resources on the Perlmutter supercomp…hgpu.org
The final installment in the series:
"The-Quest-For-Performance" from my blog Killing It with #perl
Discussing #python #numpy #numba, #rstats #openMP enhancements of Perl code and #simd
Bottom line: I will not be migrating to Python anytime soon.
Food for thought: The Perl interpreter (and many of the modules) are deep down massive C programs. Perhaps one can squeeze real performance kicks by looking into alternative compilers, compiler flags and pragmas ?
submitted by /u/ReplacementSlight413
[link] [comments]
The Quest for Performance Part IV : May the SIMD Force be with you
At this point one may wonder how numba, the Python compiler around numpy Python code, delivers a performance premium over numpy.Killing-It-with-PERL
A couple of data/compute intensive examples using Perl Data Language (#PDL), #OpenMP, #Perl, Inline and #Python (base, #numpy, #numba). Kind of interesting to see Python eat Perl's dust and PDL being equal to numpy.
OpenMP and Perl's multithreaded #PDL array language were the clear winners here.
submitted by /u/ReplacementSlight413
[link] [comments]
The Quest for Performance Part I : Inline C, OpenMP and PDL
Sometimes, one’s code must simply perform and principles, such as aeasthetics, “cleverness” or commitment to a single language solution simply go out of the window.Killing-It-with-PERL
Blogpost about setting the #openmpl environment from within #perl
Other links:
- Brett Estrade's presentation at TPRC
https://www.youtube.com/watch?v=_pzG5DerDT0
- my companion entry at blogs.perl for https://blogs.perl.org/users/chrisarg/2024/07/parallel-perlc-applications-without-tears-using-openmp-controlling-the-openmp-environment.html
perl #openmp #parallelprogramming
submitted by /u/ReplacementSlight413
[link] [comments]
Intermediate OpenMP for Perl Programmers - Brett Estrade - TPRC 2024
#tprc2024 #perl #raku #openmp This is a sequel to my 2021 talk in Houston, “Introduction to OpenMP for Perl Programmers”. That talk covered the essential ele...YouTube
Enhancing non-Perl bioinformatic applications with #Perl: Building novel, component based applications using Object Orientation, PDL, Alien, FFI, Inline and OpenMP - Archive ouverte HAL https://hal.science/hal-04606172v1
Preprint for the #TPRC2024 talk to be delivered in 10days
submitted by /u/ReplacementSlight413
[link] [comments]
Enhancing non-Perl bioinformatic applications with Perl: Building novel, component based applications using Object Orientation, PDL, Alien, FFI, Inline and OpenMP
Component-Based Software Engineering (CBSE) is a methodology that assembles pre-existing, reusable software components into new applications, which is particularly relevant for fast moving, dataintensive fields such as bioinformatics.Christos Argyropoulos