Skip to content
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 OpenMPI #20

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Eclipse/testcase/Project菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Project 菜单

## Clean

点击菜单栏 Project -> Clean...,选择要删除构建结果的项目,点击 Clean。

## 属性

点击菜单栏 Project -> Properties 打开项目的属性对话框。
33 changes: 33 additions & 0 deletions Eclipse/testcase/Refactor菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Refactor 菜单

## 重命名

在 Package Explorer 中选中一个文件,点击菜单栏 Refactor -> Rename...,输入新的文件名,点击 OK。

## 移动

在 Package Explorer 中选中一个文件,点击菜单栏 Refactor -> Move...,选择新的目录,点击 OK。

## 更改方法标志

点击菜单栏 Refactor -> Change Method Flags...,选择新的标志,点击 OK。

## 导出 Interface

点击菜单栏 Refactor -> Extract Interface...。

## 导出 Superclass

点击菜单栏 Refactor -> Extract Superclass...。

## 创建脚本

点击菜单栏 Refactor -> Create Script...。

## 应用脚本

点击菜单栏 Refactor -> Apply Script...。

## 查看历史

点击菜单栏 Refactor -> History...。
45 changes: 45 additions & 0 deletions Eclipse/testcase/导航菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 导航菜单

## 转到

点击菜单栏 Navigate -> Go To,选择要转到的位置。

## 打开定义文件

在编辑器内选择要查看的定义,点击菜单栏 Navigate -> Open Declaration。

## 打开类型定义文件

点击菜单栏 Navigate -> Open Type...,在对话框中输入并选择要查看的类型,点击确定。

## 打开类型层级

点击菜单栏 Navigate -> Open Type in Hierarchy...,在对话框中输入并选择要查看的类型,点击确定。

## 打开资源

点击菜单栏 Navigate -> Open Resource...,在对话框中输入并选择要查看的资源,点击确定。

## 以 Breadcrumb 显示

在编辑器内选择要查看的定义,点击菜单栏 Navigate -> Show in Breadcrumb。

## 在...中显示

在编辑器内选择要查看的内容,点击菜单栏 Navigate -> Show in...,选择显示的位置。

## 快速大纲

在编辑器内选择要查看的定义,点击菜单栏 Navigate -> Quick Outline 以大纲形式显示当前定义。

## 快速类型层级

在编辑器内选择要查看的类,点击菜单栏 Navigate -> Quick Type Hierarchy 以层级形式显示当前类型。

## 显示上一个 / 下一个定义

点击菜单栏 Navigate -> Previous Annotation 或 Next Annotation,显示上一个或下一个定义。

## 返回上一次编辑位置

点击菜单栏 Navigate -> Previous Edit Location 或 Next Edit Location,返回上一次编辑位置。
13 changes: 13 additions & 0 deletions Eclipse/testcase/搜索菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 搜索菜单

## 搜索

点击菜单栏 Search -> Search... 选择搜索类型,输入搜索内容,点击 Search 查找。

## 按类型搜索

点击菜单栏 Search,选择要搜索的类型(文本、参考、定义、实现、读或写),在下一级菜单中选择搜索的范围进行搜索。

## 快速搜索

点击菜单栏 Search -> Quick Search,输入搜索内容,点击 Search 查找。
60 changes: 60 additions & 0 deletions Eclipse/testcase/文件菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# 文件菜单

## 新建项目

1. 点击菜单栏 File -> New -> Project...;
2. 在对话框中选择要使用的向导,点击 Next;
3. 输入项目详细信息,点击 Finish 完成创建。

## 打开文件

点击菜单栏 File -> Open File...。

## 从文件系统或归档打开项目

1. 点击菜单栏 File -> Open Projects from File System...;
2. 在 Import source 中选择要导入的文件夹或归档文件。

## 查看最近打开的文件

点击菜单栏 File -> Recent Files。

## 清除最近打开的文件

点击菜单栏 File -> Recent Files -> Clear History。

## 转换使用的换行符

点击菜单栏 File -> Convert Line Delimiters To,选择需要使用的换行符。

## 打印

点击菜单栏 File -> Print...。

## 导入

1. 点击菜单栏 File -> Import...;
2. 在对话框中选择要使用的向导,点击 Next;
3. 输入向导需要的信息,点击 Finish 完成导入。

## 导出

1. 点击菜单栏 File -> Export...;
2. 在对话框中选择要使用的向导,点击 Next;
3. 选择要导出的的项目和导出的位置,点击 Finish 完成导出。

## 属性

点击菜单栏 File -> Proprtities...。

## 切换工作区

点击菜单栏 File -> Switch Workspace,选择要切换到的工作区。

## 重新启动

点击菜单栏 File -> Restart。

## 退出

点击菜单栏 File -> Exit。
57 changes: 57 additions & 0 deletions Eclipse/testcase/源代码菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# 源代码菜单

## 切换注释

选择要切换注释的行,点击菜单栏 Source -> Toggle Comment。

## 添加块注释

选择要添加为块注释的内容,点击菜单栏 Source -> Add Block Comment。

## 移除块注释

选择块注释的内容,点击菜单栏 Source -> Remove Block Comment。

## 为元素生成注释

选择要生成注释的元素,点击菜单栏 Source -> Generate Element Comment。

## 添加文本块

点击菜单栏 Source -> Add Text Block。

## 增加缩进

点击菜单栏 Source -> Shift Right。

## 减少缩进

点击菜单栏 Source -> Shift Left。

## 修正缩进

点击菜单栏 Source -> Correct Indentation。

## 格式化代码

点击菜单栏 Source -> Format。

## 添加导入

点击菜单栏 Source -> Add Import。

## 清理源代码

点击菜单栏 Source -> Clean Up...。

## 重写/实现代码

点击菜单栏 Source -> Override/Implement Methods...。

## 使用代码块包裹代码

点击菜单栏 Source -> Sorrounded With,选择要使用的代码块。

## 为字符串命名

点击菜单栏 Source -> Externalize Strings...,选择要命名的字符串,点击 Next,随后点击 Finish。
25 changes: 25 additions & 0 deletions Eclipse/testcase/窗口菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 窗口菜单

## 打开新窗口

点击菜单栏 Window -> New Window 打开新窗口。

## 编辑器

点击菜单栏 Window -> Editor,选择选项改变编辑器的布局。

## 外观

点击菜单栏 Window -> Appearance,选择选项显示或隐藏窗口元素或切换全屏。

## 显示或隐藏视图

点击菜单栏 Window -> Show View,选择要显示或隐藏的视图。

## 界面预设

点击菜单栏 Window -> Perspective,可以将当前界面保存为预设,或者切换到其他预设。

## 导航元素

点击菜单栏 Window -> Navigation,选择选项显示对应的导航元素。
45 changes: 45 additions & 0 deletions Eclipse/testcase/编辑菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 编辑菜单

## 扩展选择

点击菜单栏 Edit -> Expand Selection To。

## 切换块选择

点击菜单栏 Edit -> Toggle Block Selection。

## 查找和替换

点击菜单栏 Edit -> Find/Replace...。

## 添加书签

点击菜单栏 Edit -> Add Bookmark...。

## 添加任务

点击菜单栏 Edit -> Add Task...。

## 智能插入模式

点击菜单栏 Edit -> Smart Insert Mode。

## 显示提示描述

点击菜单栏 Edit -> Show Tooltip Description。

## 内容助手

点击菜单栏 Edit -> Content Assist,选择要使用的内容助手。

## 单词补全

点击菜单栏 Edit -> Word Completion。

## 快速修正

点击菜单栏 Edit -> Quick Fix。

## 设置编码

点击菜单栏 Edit -> Set Encoding...。
37 changes: 37 additions & 0 deletions Eclipse/testcase/运行菜单.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 运行菜单

## 运行

点击菜单栏 Run -> Run 运行当前项目。

## 调试

点击菜单栏 Run -> Debug 调试当前项目。

## 覆盖情况

点击菜单栏 Run -> Coverage 查看代码运行覆盖情况。

## 运行/调试/覆盖情况历史

点击菜单栏 Run -> Run History 或 Debug History 或 Coverage History 查看运行或调试或覆盖情况历史。

## 以...运行/调试/分析覆盖情况

点击菜单栏 Run -> Run As 或 Debug As 或 Coverage History,选择如何运行或调试或分析当前项目覆盖情况。

## 配置如何运行/调试/分析覆盖情况

点击菜单栏 Run -> Run Configurations... 或 Debug Configurations... 配置如何运行或调试或分析当前项目覆盖情况。

## 在当前位置设置或取消断点

点击菜单栏 Run -> Toggle Breakpoint 在当前位置设置或取消断点。

## 切换所有断点的启用状态

点击菜单栏 Run -> Skip All Breakpoints 切换所有断点的启用状态。

## 移除所有断点

点击菜单栏 Run -> Remove All Breakpoints 移除所有断点。
56 changes: 56 additions & 0 deletions HPC/MPI 程序源代码/matrix_multiplication.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>

#define ROW_A 3
#define COL_A 3
#define COL_B 3

int a[ROW_A][COL_A], b[COL_A][COL_B], c[ROW_A][COL_B];

void fill_matrix(int m[ROW_A][COL_A]) {
for (int i = 0; i < ROW_A; i++) {
for (int j = 0; j < COL_A; j++) {
m[i][j] = i + j;
}
}
}

int main(int argc, char *argv[]) {
int rank, size, rows;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);

if (rank == 0) {
fill_matrix(a);
fill_matrix(b);
}

rows = ROW_A / size;
int a_part[rows][COL_A], c_part[rows][COL_B];
MPI_Scatter(a, rows * COL_A, MPI_INT, a_part, rows * COL_A, MPI_INT, 0, MPI_COMM_WORLD);
MPI_Bcast(b, COL_A * COL_B, MPI_INT, 0, MPI_COMM_WORLD);

for (int i = 0; i < rows; i++) {
for (int j = 0; j < COL_B; j++) {
c_part[i][j] = 0;
for (int k = 0; k < COL_A; k++) {
c_part[i][j] += a_part[i][k] * b[k][j];
}
}
}

MPI_Gather(c_part, rows * COL_B, MPI_INT, c, rows * COL_B, MPI_INT, 0, MPI_COMM_WORLD);

if (rank == 0) {
for (int i = 0; i < ROW_A; i++) {
for (int j = 0; j < COL_B; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
}
MPI_Finalize();
return 0;
}
Loading