121117第二篇后.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(说明:在“2.14 点对点通信”里,2012年11月新增“图 2.17 广播”、“图 2.18 归约”、“图 2.19 并行前缀”和“图 2.20 置换”) 2.8 数组运算 因为向量是一个线性排列的数据结构, 所以顾名思义, 向量寄存器是若干 (一般为 128 ) 个普通标量寄存器的线性组合。 由此决定了: 向量机硬件只可操作向量, 并无能力操作多 (二或二以上) 维数组。然而, 数组对于成百上千种高级语言来说, 可谓无处不在; 况且一维数组及其片断, 以及多维数组在某一维上的片断都是向量, 因此在高级语言里, 数组扩充要比向量扩充显得自然。让穿着若干层软件内衣的向量机再罩上一层数组处理外套, 最后形成的抽象机终于把裸机对向量的运算功能推广到数组。关于数组运算的语法, 本节仅给出几道例题, 以及有关表达屏蔽集散方式的压缩和还原语句,略加说明。 2.8.1 无条件数组运算举例 设有下列说明: REAL A(5,-4:11),B(6:10,16),C(5,16),D(21,-21:-1,21) COMPLEX W(100),X(-50:49),Y(3,6:10),Z(-1:1,5) INTEGER LONG(20:40,20:40,20:40),SHORT(21,21,21) LOGICAL P(2,2,2),Q(1:2,2:3,3:4),R(-3:-1,-5:-1) 于是, C+A 是一个合法的数组表达式, B = C+A 是一个合法的数组赋值语句, 它规定了以下 80 个并行的标量运算: B(6,1)=C(1,1)+A(1,-4) B(6,2)=C(1,2)+A(1,-3) B(6,3)=C(1,3)+A(1,-2) . . . B(10,14)=C(5,14)+A(5,9) B(10,15)=C(5,15)+A(5,10) B(10,16)=C(5,16)+A(5,11) 类似地, (W+X)/(W-X), SHORT, D**(-LONG), P.AND..NOT.Q 和 (Y.NE.Z**Y).OR.R都是合法的数组表达式, 而数组赋值语句: W=(W+X)/(W-X) LONG=SHORT D=D**(-LONG) P=P.AND..NOT.Q R=(Y.NE.Z**Y).OR.R 也都是合法的。 假定又有一个实型标量 S 。于是, S+A 、B*S 、D-S 、(C+A)/S-B, 也都合法。 三元挑选符能够把向量加工成片断, 倘若施加于数组对象上, 结果亦然。例如, (D(5,-21:-7:3,20:14:-2)-B(6:10,2:16:4))/A(1:5,2:-1:-1) 是合法的数组表达式, 它规定了以下 20 个并行的标量表达式: (D(5,-21,20)-B(6,2))/A(1,2) (D(5,-21,18)-B(6,6))/A(1,1) (D(5,-21,16)-B(6,10))/A(1,0) (D(5,-21,14)-B(6,14))/A(1,-1) (D(5,-18,20)-B(7,2))/A(2,2) (D(5,-18,18)-B(7,6))/A(2,1) (D(5,-18,16)-B(7,10))/A(2,0) (D(5,-18,14)-B(7,14))/A(2,-1) . . . (D(5,-9,18)-B(10,6))/A(5,1) (D(5,-9,16)-B(10,10))/A(5,0) (D(5,-9,14)-B(10,14))/A(5,-1) 这些例子表明, 出现在同一运算中的全体数组片断, 都要同形。譬如说上面的 B(6:10,2:16:4), 是从二维数组 B(6:10,16) 挑选出来的一个二维片断, 作用跨度向量等于 5,4 ; 而 D 本身尽管是三维的, 但其片断 D(5,-21:-7:3,20:14:2) 的第一个下标位置是确定值, 卡死了这一维, 作用跨度向量与前者相等, 二者的确是同形的。与向量的情形 ( 2.1 节) 一样, 介入数组运算的标量也须随时进行虚假的扩张以保持

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档