test2.c

来自「shpf 1.9一个并行编译器」· C语言 代码 · 共 62 行

C
62
字号

// real a(32), b(200)
// !hpf$ distribute a (block) onto p
// !hpf$ distribute b (block (100)) onto p
// !hpf$ processors p (4)
// 
// do i=1,200
//   b(i) = i
// enddo
// do i=1,32
//   a(i) = 1000*i
// enddo
// 
// a (10:19) = b (100 : 190 : 10)
// 
// do i=1,32
//   print "(F12.2)", a(i)
// enddo
// 
// end


#include <stdio.h>
#include "ad++.h"
#include "admacros.h"


void main(int argc, char* argv[]) {
  AdlibInit(argc, argv) ;

  Procs1 p(4) ;

  Range x(32, p.dim(0), BLK) ;
  Array1<float> a(p, x) ;

  Range y(200, p.dim(0), BLK) ;
  Array1<float> b(p, y) ;

  on(p) {

    where(y)
      b(y) = 1 + y ;
    erewh(y) ;

    where(x)
      a(x) = 1000 * (1 + x) ;
    erewh(x) ;

    Range i = x.subrng(10, 9) ;
    Range j = y.subrng(10, 99, 10) ;

    remap(a.sect(i), b.sect(j)) ;

  } no(p) ;

  aprintf("%12.2f\n", a) ;

  AdlibFinalize() ;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?