当前位置:首页 » 服务存储 » 哪一算法能使存储器中的碎片最少
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

哪一算法能使存储器中的碎片最少

发布时间: 2022-03-08 09:37:14

‘壹’ 高手请进

虚拟内存:比如我的内存128,,分给集成显卡8M,开XP用掉80,火狐用掉30,这时候我想开迅雷,但是迅雷需要30M内存,内存不够了!操作系统就把火狐的30M暂时储存到硬盘上,储存需要的硬盘空间就叫虚拟内存。

缓存一般来说是一级缓存和二级缓存,是CPU内集成的很少的储存空间。一级缓存对CPU性能几乎无影响。一级、二级缓存和CPU核心速度相等,内存读写速度远远慢于二级缓存。而计算机有个原理:CPU80%的时间在处理20%的数据,所以就把这很少但最常用的数据存放在二级缓存中,以提高性能。

AMD k10架构的那个处理器有三级缓存。

‘贰’ 虚拟存储器采用的页面调度算法是“先进先出”(FIFO)算法吗

虚拟存储器采用的页面调度算法是“先进先出”(FIFO)算法吗。常见的替换算法有4种。

①随机算法:用软件或硬件随机数产生器确定替换的页面。

②先进先出:先调入主存的页面先替换。

③近期最少使用算法(LRU,Least Recently Used):替换最长时间不用的页面。

④最优算法:替换最长时间以后才使用的页面。这是理想化的算法,只能作为衡量其他各种算法优劣的标准。

虚拟存储器的效率是系统性能评价的重要内容,它与主存容量、页面大小、命中率,程序局部性和替换算法等因素有关。

(2)哪一算法能使存储器中的碎片最少扩展阅读

虚拟存储器地址变换基本上有3种形虚拟存储器工作过程式:全联想变换、直接变换和组联想变换。任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。

组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。

在段式虚拟存储系统中,虚拟地址由段号和段内地址组成,虚拟地址到实存地址的变换通过段表来实现。每个程序设置一个段表,段表的每一个表项对应一个段,每个表项至少包括三个字段:有效位(指明该段是否已经调入主存)、段起址(该段在实存中的首地址)和段长(记录该段的实际长度)。

‘叁’ 操作系统存储器动态分区分配的(快速适应算法)问题

这里的分割指的是:如果空闲分区大小为8k,而程序所占有的大小只有6k,对于一般的分配算法,会将空闲分区划分成一个6k和一个2k,然后把6k分配给程序,把2k的重新加入到空闲分区链。而快速适应算法会直接把8k都分配给程序。文中说的不会产生内存碎片指的是外碎片,而那空余的2k属于内碎片。

‘肆’ cpu的gpu合成技术

GPU在几个主要方面有别于DSP架构。其所有计算均使用浮点算法,而且目前还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。
尽管有上述约束,但是GPU还是可以有效地执行多种运算,从线性代数和信号处理到数值仿真。虽然概念简单,但新用户在使用GPU计算时还是会感到迷惑,因为GPU需要专有的图形知识。这种情况下,一些软件工具可以提供帮助。两种高级描影语言CG和HLSL能够让用户编写类似C的代码,随后编译成碎片程序汇编语言。Brook是专为GPU计算设计,且不需要图形知识的高级语言。因此对第一次使用GPU进行开发的工作人员而言,它可以算是一个很好的起点。Brook是C语言的延伸,整合了可以直接映射到GPU的简单数据并行编程构造。经 GPU存储和操作的数据被形象地比喻成“流”(stream),类似于标准C中的数组。核心(Kernel)是在流上操作的函数。在一系列输入流上调用一个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心体。Brook还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘积计算。Brook还完全隐藏了图形API的所有细节,并把GPU中类似二维存储器系统这样许多用户不熟悉的部分进行了虚拟化处理。用Brook编写的应用程序包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4执行条件下,许多此类应用的速度提升高达7倍之多。
对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。
简单点说:GPU是图形处理器,CPU是中央处理器.CPU是单线处理指令.而GPU是并行处理CPU是指令逻辑,属于计算机体系结构
GPU是与非逻辑,属于ASIC体系结构

‘伍’ 计算机操作系统第三版 汤子瀛编着的 第四章的课后题答案能发给我一下吗

第四章 存储器管理
1. 为什么要配置层次式存储器?
这是因为:
a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?
将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?
a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?
a.对相对地址进行修改
b.变换外部调用符号
6. 为什么要引入动态重定位?如何实现?
a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
9. 分区存储管理中常采用哪些分配策略?比较它们的优缺点。
分区存储管理中常采用的分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
a.首次适应算法的优缺点:保留了高址部分的大空闲区,有利于后到来的大型作业的分配;低址部分不断被划分,留下许多难以利用的、小的空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时的系统开销。
b.循环首次适应算法的优缺点:使内存中的空闲分区分布得更为均匀,减少了查找时的系统开销;缺乏大的空闲分区,从而导致不能装入大型作业。
c.最佳适应算法的优缺点:每次分配给文件的都是最适合该文件大小的分区;内存中留下许多难以利用的小的空闲区。
d.最坏适应算法的优缺点:给文件分配分区后剩下的的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大的空闲区,对大型文件的分区分配不利。
10. 在系统中引入对换后可带来哪些好处?
能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率。
12. 在以进程为单位进行对换时,每次是否将整个进程换出?为什么?
在以进程为单位进行对换时,并非每次将整个进程换出。这是因为:
a.从结构上讲,进程是由程序段、数据段和进程控制块组成的,其中进程控制块总有部分或全部常驻内存,不被换出。
b.程序段和数据段可能正被若干进程共享,此时它们也不能被换出。
13. 为实现分页存储管理,需要哪些硬件支持?
需要有页表机制、地址变换机构的硬件支持。
16. 为什么说分段系统较之分页系统更易于实现信息共享和保护?
a.对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;
b.而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可。
17. 分页和分段有何区别?
a.分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;
b.对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要;第二页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;第三分页的作业地址空间是一维的,而分段的作业地址空间是二维的。
18. 试全面比较连续分配和离散分配方式。
a.连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者将内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;
b.离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;
c.综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用.
19. 虚拟存储器有哪些特征?其中最本质的特征是什么?
特征:离散性、多次性、对换性、虚拟性;
最本质的特征:离散性;最重要的特征:虚拟性。
20. 实现虚拟存储器需要哪些硬件支持?
a.对于为实现请求分页存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有页表机制,缺页中断机构以及地址变换机构;
b.对于为实现请求分段存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有段表机制,缺段中断机构以及地址变换机构;
21. 实现虚拟存储器需要哪几个关键技术?
a.分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;
25. 在请求分页系统中,通常采用哪种页面分配方式——物理块分配策略?
三种分配方式:固定分配局部置换、可变分配全局置换、可变分配局部置换。
26. 在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。
4 3 2 1 4 3 5 4 3 2 1 5
4
4 4 1 1 1 5 5 5
3 3 3 4 4 4 2 2
2 2 2 3 3 3 1

4 4 4 4 5 5 5 5 1 1
3 3 3 3 4 4 4 4 5
2 2 2 2 3 3 3 3
1 1 1 1 2 2 2
M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为75%;
M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为83%。
由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。
28. 试说明改进型Clock置换算法的基本原理。
基本原理:
在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它写回磁盘上。在改进型算法中,除需考虑页面的使用情况外,还须再增加一个因素,即置换代价,这样,选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面。
15 什么是抖动? 产生抖动的原因是什么?
a.抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,使得系统把大部分时间用在了页面的调进换出上,而几乎不能完成任何有效的工作,我们称这种现象为"抖动"。
b.产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于"抖动"状态。

‘陆’ 大工11秋在线作业答案

大连理工大学
大工11秋《操作系统》在线作业1
单选题
1.下列4个操作系统中,属于分时操作系统的是()。
答案:D
2.存储分配解决多道作业地址空间的划分问题。为了实现静态和动态存储分配,需采用地址重定位,即把()变换成绝对地址。
答案:C
3.实时操作系统追求的目标是()。
答案:C
4.用户在一次计算过程(事务处理)中,要求计算机完成所做的工作的集合,或是要求计算机处理的一个相对独立的任务,这是指()。
答案:C
5.若把操作系统看作计算机系统资源的管理者,下列的()不属于操作系统所管理的资源。
答案:D
6.分配到必要的资源并获得处理机时的进程状态是()。
答案:B
7.下面对进程的描述中,错误的是()。
答案:D
8.下列的进程状态变化中,()变化是不可能发生的。
答案:C
9.()不是操作系统关心的主要问题。
答案:D
10.()操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
答案:C
判断题
1.批处理系统是实现人机交互的系统。
答案:A
2.即使计算机发展历经四代,但目前计算机仍然以运算器为中心。
答案:A
3.用户为每个进程创建PCB,并控制进程的执行过程。
答案:A
4.通常操作系统在管态下运行,可以执行所有机器指令。而用户程序在目态下运行,只能执行非特权指令。
答案:B
5.进程可以写在纸上或在某一存储介质上长期保存,而程序具有生存期,创建后存在,撤销后消亡。
答案:A
6.在现代计算机中,一般都提供一些专门供操作系统使用的特殊指令,这些指令只能在管态执行,称为特权指令。
答案:B
7.冯诺依曼结构计算机以存储器为中心。
答案:A
8.进程可以随时删除自己的PCB表。
答案:A
9.在大多数系统中,用户程序有时也可以在管态下执行特权指令。
答案:A
10.所有进程获得处理机都是通过申请,由用户批准而得到的。
答案:A

大连理工大学
大工11秋《操作系统》在线作业2
单选题
1.CPU的调度分为长期、中期和短期三种,其中短期调度是指()调度。
答案:A
2.一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是()。
答案:C
3.对于两个并发进程,设互斥信号量mutex的初始值为1,若mutex=0,则()。
答案:B
4.临界区是指并发进程中访问共享变量的()段。
答案:D
5.产生系统死锁的原因可能是由于()。
答案:C
6.在操作系统中,作业处于()时,已送入内存中处于进程的管理之下。
答案:C
7.若Wait-Signal操作的信号量S初值为2,当前值为-1,则表示有()等待进程。
答案:B
8.运行时间最短的作业被优先调度,这种作业调度算法是()。
答案:C
9.()是一种只能进行Wait操作和Signal操作的特殊变量。
答案:D
10.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许()个进程参于竞争,而不会发生死锁。
答案:D
判断题
1.对临界资源应采取互斥访问方式来实现共享。
答案:B

2.Wait-Signal操作是把信号量S与共享资源对应起来的一种机制,当S变为负数-X时,X表示等待使用资源的进程个数。
答案:B
3.在操作系统中同时存在多个进程,这些进程可以共享允许共享的系统资源。
答案:B
4.多处理器系统具有可靠性、高度平行性等优点。
答案:B
5.处于提交状态的作业是占用处理机执行的状态。
答案:A
6.参与死锁的所有进程中至少有三个进程占有资源。
答案:A
7.Wait-Signal操作是把信号量S与共享资源对应起来的一种机制,当S>0时,表示无资源可用或不允许进程再进入临界区。
答案:A
8.由于Wait-Signal操作无法描述同步、互斥等基本问题,所以必须引入其它的通讯原语或机制,如Send,Receive或Monitor等。
答案:A
9.计算机系统中CPU越忙,系统的运行速度越快效率越高。
答案:A
10.多处理器系统可以建立多重处理,增强系统的处理能力。
答案:B

大连理工大学
大工11秋《操作系统》在线作业3
单选题
1.在磁盘调度策略中有可能使某些I/O请求无限期等待的调度算法是()。
答案:B
2.段页式存储管理吸取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即()。
答案:B
3.存储管理的目的是()。
答案:C
4.段页式存储管理中,为了进行地址转换内核为每个进程()。
答案:A
5.()实现了段式、页式两种存储方式的优势互补。
答案:D
6.在段页式存储管理系统中,内存等分成(),程序按逻辑模块划分成若干段。
答案:A
7.动态重定位技术依赖于()。
答案:B
8.磁盘上的磁道是()。
答案:A
9.分段管理提供()维的地址结构。
答案:B
10.可变分区的存储分配算法中,空闲区按照块大小进行排序适合()算法,以使未使用的碎片尽可能小。
答案:C
判断题
1.树型目录结构能够解决文件重名问题。
答案:B
2.可变分区管理中采用最先适应法分配算法时,应将空闲区按地址递增次序登记在空闲区表中。
答案:B
3.固定分区存储管理技术的重定位方法采用的是静态重定位方法。
答案:B
4.虚存容量的扩大是以牺牲CPU工作时间、I/O操作时间、额外的主存开销等代价的。
答案:B
5.可重定位分区管理可以对作业分配不连续的内存单元。
答案:A
6.页式存储管理中,一个进程可以占用不连续的内存空间,而段式存储管理,一个进程的各段则是要求占用连续的内存空间。
答案:A
7.最近最少使用页面置换算法不会产生Belady等人所发现的异常现象。
答案:B
8.SPOOLing技术可以完全解决进程死锁问题。
答案:A
9.页式存储管理系统有页表存在。
答案:B
10.在虚拟页式存储管理中,将驻留在内存中的第一个的页面淘汰是最近最少使用页面置换算法的定义。
答案:A

马上结束了,赶快答题哦。

‘柒’ 一道操作系统题,在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为4096B,现有逻辑地址2F6AH

答案是:EF6AH
理由是:页面大小为4096字节,4096等于2的12次方。故页内地址为12位。又逻辑地址长度为16位。故高4位表示页号。则逻辑地址2F6AH在第2页。根据页表可知,第2页存于第14块中。14的十六进制为EH,与低12位F6AH拼接得物理地址为EF6AH

‘捌’ 关于GPU的问题!

GPU概念
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。

GPU的作用
GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。

于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。

简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。

GPU与DSP的区别
GPU在几个主要方面有别于DSP架构。其所有计算均使用浮点算法,而且目前还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。

尽管有上述约束,但是GPU还是可以有效地执行多种运算,从线性代数和信号处理到数值仿真。虽然概念简单,但新用户在使用GPU计算时还是会感到迷惑,因为GPU需要专有的图形知识。这种情况下,一些软件工具可以提供帮助。两种高级描影语言CG和HLSL能够让用户编写类似C的代码,随后编译成碎片程序汇编语言。Brook是专为GPU计算设计,且不需要图形知识的高级语言。因此对第一次使用GPU进行开发的工作人员而言,它可以算是一个很好的起点。Brook是C语言的延伸,整合了可以直接映射到GPU的简单数据并行编程构造。经 GPU存储和操作的数据被形象地比喻成“流”(stream),类似于标准C中的数组。核心(Kernel)是在流上操作的函数。在一系列输入流上调用一个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心体。Brook还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘积计算。Brook还完全隐藏了图形API的所有细节,并把GPU中类似二维存储器系统这样许多用户不熟悉的部分进行了虚拟化处理。用Brook编写的应用程序包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4执行条件下,许多此类应用的速度提升高达7倍之多。

对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。