ScalaMP ---- 模仿 OpenMp 的一个简单并行计算框架
1、前言 这个项目是一次课程作业,老师要求写一个并行计算框架,本人本身对openmp比较熟,加上又是scala 的爱好者,所以想了许久,终于想到了用scala来实现一个类似openmp的一个简单的并行计算框架。 项目github地址: ScalaMp 2、框架简介 该并行计算框架是受 openmp 启发,以 scala 语言实现的一个模仿 openmp 基本功能的简单并行计算框架, 该框架的 设计目标是,让用户可以只需关心并行的操作的实现而无需考虑线程的创建和管理。本框架实现了最 基本的并行代码块和并行循环两个功能。 接下来会介绍框架的接口设计和具体的技术实现细节。然后会以 3 个具体的例子来演示框架的 使用方法, 和验证框架 的正确性,更多的例子详见github上的example.Main.scala文件。 3 个具体的并行计算问题包括: 1 、梯形积分法 2 、计算 pi 值 3 、多线程分段下载文件(图片、 mp3 ) 3、框架接口设计与技术实现 3.1、接口设计 该框架主要是模仿了 openmp 的“ omp parallel ”和“ omp parallel for ”两条并行命令, 以 scala 语言 实现了自己的 版本。 在介绍接口设计之前首先我们可以分析一下以上五个问题的做一下抽象,把相同的可并行的 部分抽象出 来。并行这 五个问题,抽象出来可以看成是给定一个任务