Parallel-Programming
c cpp GPU openmp MPI 

所属分类:GPU/显卡
开发工具:C
文件大小:14342KB
下载次数:0
上传日期:2019-06-23 21:19:53
上 传 者sh-1993
说明:  并行编程,,
(Parallel-Programming,,)

文件列表:
.idea (0, 2019-06-24)
.idea\MSBD5009.iml (281, 2019-06-24)
.idea\deployment.xml (401, 2019-06-24)
.idea\encodings.xml (135, 2019-06-24)
.idea\misc.xml (174, 2019-06-24)
.idea\modules.xml (268, 2019-06-24)
.idea\vcs.xml (180, 2019-06-24)
.idea\workspace.xml (41626, 2019-06-24)
LICENSE (1066, 2019-06-24)
src (0, 2019-06-24)
src\assignment (0, 2019-06-24)
src\assignment\assignment1-package (0, 2019-06-24)
src\assignment\assignment1-package\MPI_Manual.pdf (380222, 2019-06-24)
src\assignment\assignment1-package\assignment1.pdf (460661, 2019-06-24)
src\assignment\assignment1-package\datasets (0, 2019-06-24)
src\assignment\assignment1-package\datasets\input0.txt (23, 2019-06-24)
src\assignment\assignment1-package\datasets\input1.txt (71, 2019-06-24)
src\assignment\assignment1-package\datasets\input2-2.txt (1424232, 2019-06-24)
src\assignment\assignment1-package\datasets\input2.txt (2242001, 2019-06-24)
src\assignment\assignment1-package\datasets\input3.txt (3244458, 2019-06-24)
src\assignment\assignment1-package\main (196080, 2019-06-24)
src\assignment\assignment1-package\main.cpp (5424, 2019-06-24)
src\assignment\assignment1-package\mpi_push_relabel.h (1081, 2019-06-24)
src\assignment\assignment1-package\mpi_push_relabel_skeleton.cpp (5714, 2019-06-24)
src\assignment\assignment1-package\push_relabel_algorithm_tutorial.pdf (1116854, 2019-06-24)
src\assignment\assignment1-package\serial (0, 2019-06-24)
src\assignment\assignment1-package\serial\main.cpp (4930, 2019-06-24)
src\assignment\assignment1-package\serial\push_relabel.h (881, 2019-06-24)
src\assignment\assignment1-package\serial\serial_push_relabel.cpp (3462, 2019-06-24)
src\assignment\assignment2-package (0, 2019-06-24)
src\assignment\assignment2-package\assignment2.pdf (441172, 2019-06-24)
src\assignment\assignment2-package\datasets (0, 2019-06-24)
src\assignment\assignment2-package\datasets\input1-2.txt (71, 2019-06-24)
src\assignment\assignment2-package\datasets\input1.txt (71, 2019-06-24)
src\assignment\assignment2-package\datasets\input2-2.txt (1301498, 2019-06-24)
... ...

# Parallel Programming - Introduction to parallel computer architectures - Principles of parallel algorithm design - Shared-memory programming models - Message passing programming models - Data-parallel programming models for GPUs - Case studies of parallel algorithms, systems, and applications - Hands-on experience with writing parallel programs for tasks of interest ## Message Passing Programming Models ### Message Passing Interface (MPI) ## Shared Memory Programming Models ### Pthreads ### OpenMP ## Data Parallel Programming Models ### CUDA All assignments are to make a serial push-relabel algorithm parallelised with MPI, Pthreads, CUDA. ## Assignment Description The push–relabel algorithm (alternatively, preflow–push algorithm) is an algorithm for finding maximum flows from a single source vertex to a sink vertex in a directed weighted graph. The weight on each edge represents the capacity of the edge. The algorithm starts from the source and pushes a number (the flow value) that is no more than the edge weight to each neighbor. This process goes on until all vertices have no excess flows (the incoming flow is equal to the outgoing flow). The resulting flows in the graph are the maximum flows. The Maximum Flow Problem. Given source and sink vertices (src, sink) and a capacity matrix C of a directed graph G=(V, E) where the in-degree of src is zero, and the out-degree of sink is zero; find the maximum flows F from the source vertex src to the sink vertex sink with two constraints. Flow on an edge doesn’t exceed the given capacity of the edge. (F[v][w] ≤ C[v][w]). Incoming flow is equal to outgoing flow for every vertex except src and sink. The pseudo code of a push-relabel algorithm is given in Algorithm 1. The input parameters are the capacity matrix C, source and sink vertices src and sink. Four vertex properties are introduced for the push-relabel operations namely: (1) distance labels dist, (2) stashed distance labels stash_dist, (3) excess flows excess and (4) stashed excess flows stash_excess. The algorithm starts with an initialization of the distance labels dist, excess flows excess and the flow matrix F (Lines 1-4). After the preflow operation, the algorithm conducts iterative computations on each active node whose excess flow is greater than zero. The set of active nodes is denoted by Q. In each iteration, there are four stages: (1)excess flow pushing, (2) distance relabeling, (3) stashed distance change applying and (4) stashed excess flow change applying.

近期下载者

相关文件


收藏者