① 高庆狮的辉煌成就
1978年,他提出了虚共存细胞结构纵横加工向量机原理,在此基础上,设计了十亿次和百亿次巨型机方案。他发表在国际系统结构年会的“素数地址快速计算”,克服美国素数巨型机浪费存储空间的缺点,被美国《计算机系统结构新闻》(ComputerArchitectureNews)收录。在串行算法并行化方面,他1974年提出了优化的纵横加工并行算法,比美国杂志上相近的论文早13年。之后又全面扩大优化算法的使用范围,并提出全面推广着名的Bitonic和Odd-even排序的k-bitonic排序算法。
1980年,中国科学院转向面向未来智能领域的巨型机系统,1986年被列入“863”计划。在这项研究中,他发现,人类智能活动的基本方法的模式之一是“宏变换”。在此研究中,他在国际会议及国内外学报上,发表了一组有关宏变换和选择跳跃搜索的论文,包括多项式算法、线性算法、局部搜索和常数算法,这些算法都比美国同类算法早。
2000年,他开始研究网络安全问题,提出了国际上第一个从计算机系统结构角度来防止病毒攻击和盗窃的方案,并获得了发明专利。接着,他又提出了提高自然语言口语识别和文字手写,其中,包括在线非在线及印刷体识别的识别率的有效方法,再次获得了发明专利。
在网络安全方面,1999年底2000年初,他看到靠鉴别认证软件来发现病毒难于事先进行,于是提出了如果病毒进入了计算机系统,从系统结构角度采取措施(虚拟空间隔离)来防止“病毒对系统内需要保护的软硬件进行盗窃或破坏”比较容易。提出了在国际上第一个防止病毒攻击和盗窃的计算机体系结构,申请并获得了两个相关的发明专利。
2004年,他发现1965年Zadeh提出的模糊集合论不完备(不能正确描述客观世界中的各种模糊现象)和不可能有补集等两个缺点。Zadeh先生误把“共轭”定义成为“补集”导致了思维、逻辑和概念混乱的错误。Zadeh先生没能接受数学家们的批评,反而把错误说成为“对传统的挑战”、“摆脱传统的约束”,误导了人们错误地以为模糊集合论必须与经典数学理论相悖的更严重错误,导致40年后的今天,模糊集合论仍然不是一门严格的数学理论。他指出模糊集合之间存在着关系(独立、不相交、包含、相交而不包含),在提出模糊集合之间的相关系数(ζB/A(u)=mA?B(u)/mA(u))及隶属度统一计算公式的基础上,提出与概率论的基本部分同构,与经典集合论一致,与通常逻辑、思维和概念相一致的新模糊集合论(突出统计背景的C-,屏蔽统计背景的C*-)。把模糊集合论扳回精确科学轨道。克服了Zadeh模糊集合论的全部错误和缺点。并且证明了它们可以成为“一套理论,多种解释”。一套理论,就是概率论。多种解释,就是概率论解释、模糊集合论解释、可信度解释、可能度解释、权函数解释,等等各种“不确定度量”的解释。最近又发现J.?ukasiewicz多值(命题)逻辑理论犯有类似毛病和相似的克复方法。
他指导过或正在指导的博士硕士研究生有近百名。曾经参加并指导两批研究生及有关人员创汇百万美元以上。在国内外一级学报、及国外国际会议等发表过70多篇学术论文,其中第一作者约50篇。此外还有30多篇有关重大工程的论证报告。近几年来,已经申请六项发明专利(其中三个已获,三个在审理中)。获国家级一等奖两个(集体,一项他是新原理提出者和总体设计负责人,另一项他是系统结构设计负责人之一)。科学院特等奖一个(集体)。获全国科学大会科学重大成果奖的项目中,有一项他是负责人,一项是系统结构负责人,一项是系统结构负责人之一,还有一项,他参加其总功能指标的确定。1978年被评为全国科学大会先进工作者(全国劳模),1984年被国家科委授予第一批有突出贡献专家称号。
② c语言如何串行算法并行化
你好,C的并行方法为扩展并行。即使用第三方C语扩展来实现,现在基于C的并行扩展有openMP、CUDA等,如果需要推荐书发消息给我。补充:你现在的想法跟AMD的差不多,但是实际用途只在部分代码上有用,具体大的工程实践还是需要相关人员自己进行并行设计,你可以通过很多书上的并行方法通过自己设计解析软件把程序代码分解为openMP代码并作为预处理代码。
③ 串行计算和并行计算在算法设计中的不同点
首先,应用的场合和解决的问题不一样。分布式计算比较倾向于在计算寻找模式的东西,穷举暴力之类的计算。分布式的计算被分解后的小任务互相之间有独立性,节点之间的结果几乎不互相影响,实时性要求不高。而并行计算则比较倾向于一些海量数据进行分析处理的场合,每个节点的每一个任务块都是必要的,计算的结果相互影响,要求每个节点的计算结果要绝对正确,并且在时间上做到同步。举例来说,像MD5破解,就比较适合使用大规模的分布式计算来穷举,但对海量日志数据进行处理来分析用户行为就比较适合并行计算处理。
其次,实现方式区别比较大。分布式计算会是一个比较松散的结构,并行计算则是各节点之间通过高速网络或其它总线之类的东西连接。因此并行计算一般在企业内部进行,而分布式计算可能会跨越局域网,或者直接部署在互联网上,节点之间几乎不互相通信。很多公益性的项目,就是的使用分布式计算的方式在互联网上实现,比如以寻找外星人为目的的SETI项目。
④ 计算方法中什么是串行算法与并行算法
如果认为题主所说的并行和串行指的GPU和CPU
CPU核心大量晶体管用于缓存,保证尽快执行每一条指令(不管是什么指令)。
GPU核心大量晶体管用于计算,保证尽量高的指令吞吐量。
可以这样比喻。
CPU=1个理工科博士(没有黑文科博士的意思)
GPU=100个小学生
目前的问题是,要算1万道简单的加减法,肯定是小学生们一起算的快。
但如果要思考相对论,还是让博士来吧。
⑤ 串行算法和并行算法有什么区别 尽可能详细点
串行算法是单个处理器的运算并行算法,是将一个计算任务分摊到多个处理器上并同时运行的计算方法。比如双核CPU ,从外部看起来是一个CPU,但是内部有两个运算核心。
⑥ 串行算法是否都能转成并行算法
你好,C平行的方法可扩展并行。使用C语言扩展第三方基于C语言的并行扩展OpenMP中,CUDA等,如果你需要的信我推荐消息。补充:你的想法几乎与AMD,但实际用途上唯一有用的部分代码,具体的工程实践或相关人员并行设计,你可以通过自己的设计分析软件程序代码的并行方法的许多书籍到OpenMP代码,作为前处理的代码。
⑦ 串行算法改成并行算法
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include <time.h>
#include <omp.h>
#include<iostream>
using namespace std;
//设置全局数组——牛顿 科特斯公式系数表
double C[6][7]={{1.0/2,1.0/2},{1.0/6,4.0/6,1.0/6},{1.0/8,3.0/8,3.0/8,1.0/8},{7.0/90,16.0/45,2.0/15,16.0/45,7.0/90},{19.0/288,25.0/96,25.0/144,25.0/144,25.0/96,19.0/188},{41.0/840,9.0/35,9.0/280,34.0/105,9.0/280,9.0/35,41.0/840}};
int _tmain(int argc, _TCHAR* argv[])
{
double a=0.0,b=0.0,Cotes=0.0,begin ,end;
int n=0;
cout<<"请分别输入积分段的下限和上限:"<<endl;
cin>>a>>b;
cout<<"请输入您想设置的分段数(节点数-1):"<<endl;
cin>>n;
//检测输入
while(!(n>=1&&n<=6))
{
cout<<"分段数最多为6,请重新输入"<<endl;
cin>>n;
}
begin=(double)clock(); /*计算开始时间的函数*/
omp_set_num_threads(2);
#pragma omp parallel for rection(+:Cotes)
for(int j=0;j<=n;j++) //计算科特斯公式的值
Cotes=Cotes+C[n-1][j]*log((j*(b-a)/n)+a); //函数f(x)为f(x)=ln x 这里可以改成想要的函数
Cotes=(b-a)*Cotes;
cout<<"牛顿—柯特斯公式计算积分的结果是"<<Cotes<<endl;
end=(double)clock(); //牛顿—柯特斯公式积分计算的结束时间
printf("\n牛顿—柯特斯公式计算积分所需要的时间是:%f秒\n",(end-begin)/ (double)CLOCKS_PER_SEC);
return 0;
}