本科的话以基础课为主。和一本学的一样的,唯一可能不同的是因为学校的水平而限制开不了某些课。但是主体的课都是要开的。
本科课程
微型计算机技术
数据结构
人工智能导论
信号处理原理
多媒体技术基础
软件工程
计算机组成与结构
java编程语言
编译原理
数据库系统与应用
虚拟现实与系统仿真
离散数学(上)
数据库系统概率
MPI并行程序设计
计算机原理
模式识别
数字系统设计自动化
计算机系统结构
汇编语言程序设计
C++语言程序设计
对于就业方面来说,方向很多只要你专研了一个方向即可,当然是你的很牛X比如javaweb开发、前端设计、移动开发(android、iphone)、算法工程师、。net、C、c++、数据库管理员DBA、嵌入式开发等等啊。只要精通了我说的上面的一种工作不愁吧。月薪在7000以上吧。
1、icc
Intel C/C++编译器接受遵守ANSI C/C++ , ISO C/C++ standards,GNU inline ASM for IA-32 architecture标准的输入。与linux下常用的gcc兼容并支持更大的C语言扩展,包括源文件、命令行参数、目标文件。不支持gcc的inline方式的汇编。例,fc
#include
int main(int argc, char argv[]){
printf("Hello\n");
return 0;
}
编译:icc -c fcpp -o fo
链接:icc fo -o f
运行:/f
注意,编译与链接都由icc来完成,icc常用命令行参数:
-o 输出文件命名
-I include路径
-L lib路径
-l 包含的lib名
-c 仅生成目标文件(o),不链接
-On n=0,1,2,3 编译器优化选项,n=0关闭编译器优化,n=3使用最激进的优化
-c99[-] 打开/关闭 c99规范的支持
详细的请参照icc的manpage
2、ifort
Intel Fortran编译器支持F77/90/95标准并与CFV(Compaq Visual Fortran)兼容。例,ff90
program f
print , "Hello"
stop
end
编译:ifort -c ff90 -o fo
链接:ifort fo -o f
运行:/f
编译与连接同样由ifort来完成,ifort常用命令行参数:
-o 输出文件命名
-I include路径
-L lib路径
-l 包含的lib名
-c 仅生成目标文件(o),不链接
-On n=0,1,2,3 编译器优化选项,n=0关闭编译器优化,n=3使用最激进的优化
-std90 使用F90标准编译
-std95 使用F 95标准编译
-f77rtl 编译使用F77运行方式的代码(用于解决特殊问题)
These options optimize application performance for a particular Intel processor or family of processors The compiler generates code that takes advantage of features of the specified processor
Option
Description
tpp5 or G5 Optimizes for Intel Pentium and Pentium with MMX technology processors
tpp6 or G6 Optimizes for Intel Pentium Pro, Pentium II and Pentium III processors
tpp7 or G7 Optimizes for Intel Pentium 4, Intel Xeon, Intel Pentium M processors, and Intel Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3) instruction support
On Intel EM64T systems, only option tpp7 (Linux) or G7 (Windows) is valid
About tpp:
Intel Fortran Compiler Options:
Intel(R) Fortran Compiler Options:
ifort编译器提供了非常多的优化参数
$ ifort --help | more 查看就可以
也可以定位到某个参数
$ifort --help | grep -5 '-mkl'
-5表示显示查找到的行及下面5行的内容。
3、Intel MKL数学库针对Intel系列处理器进行了专门的优化,主要包含的库有:
基本线形代数运算(BLAS)
向量与向量、向量与矩阵、矩阵与矩阵的运算
稀疏线形代数运算
快速傅立叶变换(单精度/双精度)
LAPACK(求解线形方程组、最小方差、特征值、Sylvester方程等)
向量数学库(VML)
向量统计学库(VSL)
高级离散傅立叶变换
编译:
icc multic -I/opt/intel/mkl/include –L/intel/mkl/lib –lmpi_ipf –o multi
4、MPI程序编译
消息传递接口(MPI)并行程序设计模型程序的编译命令。例,fc
include
#include
main(argc,argv)
int argc;
char argv[];
{
char name[BUFSIZ];
int length;
MPI_Init(&argc,&argv);
MPI_Get_processor_name(name, &length);
printf("%s: hello world\n", name);
MPI_Finalize();
}
编译与连接均使用mpicc,参数与mpicc中定义的编译器相同,这里与icc相同。
mpicc –c helloc –o helloo
mpicc helloo –o hello
运行使用mpirun 命令,将运行需要的节点定义在文件中并在-machinfile中制定。
文件: nodelist
node1
node1
node2
node3
运行:
$mpirun –machefile nodelist –np 4 /hello
node1: hello world
node1: hello world
node2: hello world
node3: hello world
5、32位向64位的移植
32位程序到64位移植中应注意的常见问题:
数据截断:
由于long类型变量的运算(赋值、比较、移位等)产生。long定义在x86上为32bits,而在ia64上为64bits容易在与int型变量运算时出现异常。
处理方法:尽量避免不同类型变量间的运算,避免将长度较长的变量赋值到较短的变量中,统一变量长度可以解决这个问题。简单的对于32位转移到64位可以将所有long定义转换为int定义。
#include <mpih>
#include <stdioh>
#include <mathh>
#define SIZE 10
void main(int argc, char argv)
{
int myid, numprocs;
int data[SIZE], i, x, low, high, myresult, result;
char fn[255];
char fp;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
if (myid == 0) { / Open input file and initialize data /
strcpy(fn,getenv("HOME"));
strcat(fn,"/data");
if ((fp = fopen(fn,"r")) == NULL) {
printf("Can’t open the input file: %s\n\n", fn);
exit(1);
}
for(i = 0; i < SIZE; i++) fscanf(fp,"%d", &data[i]);
}
/ broadcast data /
MPI_Bcast(data, SIZE, MPI_INT, 0, MPI_COMM_WORLD);
/ Add my portion Of data /
x = SIZE/numprocs;
low = myid x;
high = low + x;
if(myid == numprocs - 1) high = SIZE;
myresult = 0;
for(i = low; i < high; i++)
myresult += data[i];
/ Compute global sum /
MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
if (myid == 0) printf("The sum is %d\n", result);
MPI_Finalize();
}
楼主将我们计算机的主要课程已经罗列的很详细了啊!好吧!我就来唠唠!先声明一点这个只是适合以后当程序员的人哦!
1半年:C语言程序设计(这是基础,很多人入门很快,但是这也是最难的,望在上面多下功夫)
and 计算机网络
2半年:数据结构(这个也是很重要的哦!)java编程(一定要动手的哦,这个极有可能就是你的主要工作了)
3半年:数据库和计算机组成原理!
4还有时间了一定要了解linux系统,这个对个人有很大的提高的,但是我的朋友,你现在的程度就是windows的 *** 作我估计都是有很大的问题,故此先建议你找本windows的书将一些经常用的东西搞懂之后就能按照我说的做了!
离散数学 组合数学 汇编语言 数据结构 模式识别 编译原理 C++程序设计 JAVA程序设计 微型计算机技术 数值分析 多媒体技术基础及应用 人工智能导论 人工智能原理 数据库系统概论 数据库系统及应用 工程数据库设计与应用 信号处理原理 宽带网络交换技术 数字系统设计自动化 MPI并行程序设计 并行计算 研究生同等学历_人工智能原理 研究生同等学历_计算机系统结构 研究生同等学历_软件工程
——仅作参考
云计算概念被提出以后并行计算技术和虚拟化技术成为其核心支撑技术,云计算将按需计算带给了普通的用户,也使并行计算成为普通用户也能方便使用的技术,而且并行计算中的"单一系统映像技术"实际也反映系统虚拟化的思想,所以广义来看并行计算技术本身可能包括虚拟化技术,因而并行计算技术是云计算技术中的一个相当重要的技术基础。云计算及高性能计算的逐步普及使并行程序设计成为许多程序设计人员不可避免的一项艰巨工作,特别是云计算、个人高性能计算机(PHPC)等技术的深入发展,使许多技术人员开始从单机工作模式向并行计算模式转变。由于并行程序设计现在还没有一个很好的集成开发平台提供方便的组件给设计者使用,几乎所有的设计工作都需要从底层自己完成,因此并行程序的设计往往使很多程序设计者望而却步。MPI作为并行程序设计事实上的标准被广泛地应用于各个领域,不少企业及研究机构逐步认识到MPI的重要
以上就是关于二本计算机科学和技术专业学什么,学完了以后出来干什么全部的内容,包括:二本计算机科学和技术专业学什么,学完了以后出来干什么、老大们请问下编译mpi的问题、求解并行题目: 以下是一段用MPI 实现的并行程序代码,用来并行求一组数的和。 #include <mpi.h> #include等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)