Contour Line Generation with HPX

Contour lines are essential in the mapping and comprehension of hurricane data. However, larger sets of data require more time to be processed. This issue is compounded by the increasing granularity of information output by modern models and can be a significant expenditure of computational resources and time when executed serially. To address this issue, I use the HPX library to generate contour lines on multiple processors simultaneously.

GD Star Rating

Benchmarking User Level Threads

One of the core features of HPX is our lightweight user-level threading. User-level threading implements a second layer of thread infrastructure on top of OS-threads (e.g. thread implementations provided by the operating system or kernel). This form of threading is also called hybrid or M:N (mapping N user threads onto M OS-threads) threading.

We recently conducted a benchmark of the scalability of lightweight user-level threads in the face of extremely fine-grained parallelism. Fine-grained parallelism refers to the division of work into very small parallel tasks. By making the tasks very small, the task scheduler is able to load balance more efficiently in the face of highly dynamic applications.

This article presents details of the benchmark we used, and a comparison of HPX with three other software libraries which provide lightweight user-level threading (Qthreads, TBB and SWARM). Continue reading

GD Star Rating

Parcel Forwarding by AGAS Service

Parcel Forwarding is an incremental feature added in the HPX system that allows the AGAS service itself to forward the parcels from the requesting locality to the destination locality. This feature would minimize the overall time taken for address resolution of a parcel’s destination and the parcel’s arrival at its destination.

GD Star Rating

HPX vs. OpenMP: Gauss-Seidel Method

[latexpage]

NOTE: This article does not represent the whole truth. Actually OpenMP is better, not all relevant things have been exploited. There will be an updated article as soon as possible!

Many problems can be reduced, or reformulated as such that the solution is equivalent to solving a linear system of equations (LSE) in the form of:

$Ax = b$ where $A \in \mathbb{R}^{NxN}$ and $x, b \in \mathbb{R}^{N}$.

There exist a big variety of algorithms to solve these equations. This post will lay out a possible parallel implementation using HPX and OpenMP of the Gauss-Seidel method. Continue reading

GD Star Rating