-
-
Notifications
You must be signed in to change notification settings - Fork 438
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
Add vectorization to the par_vec (aka par_unseq) implementations of the parallel algorithms #2271
Comments
@brycelelbach @hkaiser Could you please add a project description here https://github.com/STEllAR-GROUP/hpx/wiki/GSoC-2017-Project-Ideas |
I am interested in working on this project. I have seen that in the previous PRs we have added openMP pragmas for vectorization and parallelisation of a loop. Can someone guide me on how I can start out with working on this issue? |
Yes, we have implemented this for the first batch of algorithms. There are still algorithms left that have not been touched, though. Also, we would need a thorough performance analysis of the existing implementation, combined with improvements, if needed. |
par_unseq implementation for algorithms, checking for all (work under progress)
|
Hello @hkaiser , I am interest in this topic on gsoc24 ,I have a qeustion. |
Everything is possible, I guess - as long as it is portable across architectures (beyond x86), at least in the long run. |
The
par_vec
(akapar_unseq
) policy allows interleaving of element access functions, e.g. it is safe to the iterations of the algorithm.Explicit engagement of compiler vectorizers through pragmas is probably the best way to ensure this occurs (e.g.
#pragma simd
,#pragma omp simd
).I will probably take a look into doing this myself while preparing my CppCon talk on parallel algorithms.
The text was updated successfully, but these errors were encountered: