PowerPoint 演示文稿

Size: px
Start display at page:

Download "PowerPoint 演示文稿"

Transcription

1 第六讲 消息传递编程接口 MPI 二 MPI 消息传递 1

2 MPI 消息传递 MPI 点对点通信类型 阻塞型和非阻塞型 MPI 消息发送模式 标准模式 缓冲模式 同步模式 就绪模式 MPI 聚合通信 多个进程间的通信 2

3 阻塞型和非阻塞型通信 阻塞型 (blocking) 和非阻塞型 (non blocking) 通信 阻塞型通信函数需要等待指定的操作实际完成, 或所涉及的数据被 MPI 系统安全备份后才返回 阻塞型通信是非局部操作, 它的完成可能涉及其它进程 MPI_SEND 和 MPI_RECV 都是阻塞型的 非阻塞型通信函数总是立即返回, 实际操作由 MPI 后台进行, 需要调用其它函数来查询通信是否完成 非阻塞型通信是局部操作 在实际操作完成之前对相关数据区域的操作是不安全的 在有些并行系统上, 使用非阻塞型函数可以实现计算与 通信的重叠进行 常用的非阻塞型通信函数为 MPI_ISEND 和 MPI_IRECV 3

4 非阻塞型发送函数 MPI_ISEND(buf,count,datatype,dest,tag,comm,request) 其中 request 是输出参数, 为请求句柄, 以备将来查询, 其它参数含义与 MPI_SEND 相同 在 C 中 request 的数据类型是 MPI_Request; 在 FORTRAN 中 request 为整型 C F77 int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) MPI_ISEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR) <type> BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR 4

5 非阻塞型接收函数 MPI_IRECV(buf,count,datatype,source,tag,comm,request) C F77 int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request) MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERR) <type> BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR 参数中没有 status, 消息的查询使用 request 阻塞型 / 非阻塞型通信函数使用时要保持一致性! 5

6 非阻塞型通信检测 MPI_WAIT(request, status) 参数 C F77 IN request 通信请求 OUT status 消息状态 int MPI_Wait(MPI_Request *request, MPI_Status *status) MPI_WAIT(REQUEST, STATUS, IERR) INTEGER REQUEST, IERR, STATUS(MPI_STATUS_SIZE) 该函数是阻塞型的, 它必须等待指定的通信请求完成后才能返回, 与之相应的非阻塞型函数是 MPI_TEST 成功返回时,status 中包含关于所完成的通信的消息, 相应的通信请求被释放, 即 request 被置成 MPI_REQUEST_NULL 6

7 非阻塞型通信检测 MPI_TEST(request, flag, status) 参数 OUT flag 操作是否完成标志 ( 其它参数含义同 MPI_WAIT) C F77 int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) MPI_TEST(REQUEST, FLAG, STATUS, IERR) LOGICAL FLAG INTEGER REQUEST, IERR, STATUS(MPI_STATUS_SIZE) 非阻塞型通信检测函数, 不论通信是否完成都立刻返回, 功能同 MPI_WAIT 7

8 MPI_WAITANY MPI_WAITANY(count, array_of_requests, index, status) 参数 C F77 IN count 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT index 已完成通信操作的句柄指标 OUT status 消息状态 int MPI_Waitany(int count, MPI_Request *array_of_requests, int *index, MPI_Status *status) MPI_WAITANY(COUNT, ARRAY_OF_REQUESTS, INDEX, STATUS, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), INDEX, IERR, STATUS(MPI_STATUS_SIZE) 所有请求句柄中至少有一个已经完成才返回, 阻塞型函数 若有多个请求句柄已完成, 则随机选择其中一个并立即返回 8

9 MPI_TESTANY MPI_TESTANY(count,array_of_requests,index,flag,status) 参数 C F77 OUT flag 操作是否完成标志 ( 其它参数含义同 MPI_WAITANY) int MPI_Testany(int count, MPI_Request *array_of_requests, int *index,int *flag,mpi_status *status) MPI_TESTANY(COUNT, ARRAY_OF_REQUESTS, INDEX, FLAG, STATUS, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), INDEX, FLAG, IERR, STATUS(MPI_STATUS_SIZE) 功能同 MPI_WAITANY, 非阻塞型函数 9

10 MPI_WAITALL MPI_WAITALL(count,array_of_requests,array_of_statuses) 参数 C F77 IN count 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT array_of_statuses 所有消息的状态数组 int MPI_Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) MPI_WAITALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), IERR, ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 当所有的通信操作全部完成后才返回, 否则将一直等待 阻塞型函数 10

11 MPI_TESTALL MPI_TESTALL(count,array_of_requests,flag,array_of_statuses) 参数 C F77 OUT flag 操作是否完成标志 ( 其它参数含义同 MPI_WAITALL) int MPI_Testall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) MPI_TESTALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), IERR, ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 非阻塞型, 无论所有的通信操作是否全部完成都将立即返回 若有一个通信操作没有完成, 则 flag 为 0/ 假 11

12 MPI_WAITSOME MPI_WAITSOME(incount, array_of_requests, outcount, array_of_indices, array_of_statuses) 参数 C F77 IN incount 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT outcount 已完成通信请求个数 OUT array_of_indices 已完成请求的下标数组 OUT array_of_statuses 所有消息的状态数组 int MPI_Waitsome(int incount, MPI_Request *array_of_requests, int *outcount, int *array_of_indices, MPI_Status *array_of_statuses) MPI_WAITSOME( INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERR) INTEGER INCOUNT, OUTCOUNT, IERR, ARRAY_OF_REQUESTS(*), ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 阻塞型, 至少有一个通信操作完成才返回 12

13 MPI_TESTSOME MPI_TESTSOME(incount, array_of_requests, outcount, array_of_indices, array_of_statuses) 参数 C F77 参数含义同 MPI_WAITSOME int MPI_Testsome(int incount, MPI_Request *array_of_requests, int *outcount, int *array_of_indices, MPI_Status *array_of_statuses) MPI_TESTSOME( INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERR) INTEGER INCOUNT, OUTCOUNT, IERR, ARRAY_OF_REQUESTS(*), ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 非阻塞型, 若一个通信操作都没完成, 则 outcount=0 13

14 MPI 消息检测函数 MPI_PROBE(source,tag,comm,status) 该函数用于检测一个符合条件的消息是否到达 它是阻塞型函数, 必须等到一个符合条件的消息到达后才返回 参数的含义与 MPI_RECV 相同 MPI_IPROBE(source,tag,comm,flag,status) 非阻塞型消息检测函数 flag 在 C 中为整型, 在 FORTRAN 中为逻辑型 如果符合条件的消息已到达, 则 flag 为非零值 / 真, 否则为 0/ 假 这两个函数中的参数 source 可以是 MPI_ANY_SOURCE,tag 也可以是 MPI_ANY_TAG, 但必须指定通信器 14

15 MPI_PROBE/IPROBE C F77 int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status * status) MPI_PROBE(SOURCE, TAG, COMM, STATUS, IERR) INTEGER SOURCE, TAG, COMM, IERR, STATUS(MPI_STATUS_SIZE) C F77 int MPI_IProbe(int source, int tag, int *flag, MPI_Comm comm, MPI_Status * status) MPI_IPROBE(SOURCE, TAG, COMM, FLAG, STATUS, IERR) LOGICAL INTEGER FLAG SOURCE, TAG, COMM, IERR, STATUS(MPI_STATUS_SIZE) 15

16 MPI 释放通信请求函数 MPI_REQUEST_FREE(request) 释放指定的通信请求 ( 及所占用的内存资源 ) 若该通信请求相关联的通信操作尚未完成, 则等待通信的完成, 因此通信请求的释放并不影响该通信的完成 该函数成功返回后 request 被置为 MPI_REQUEST_NULL 一旦执行了释放操作, 该通信请求就无法再通过其它任何的调用访问 16

17 MPI 取消通信函数 MPI_CANCEL(request) 非阻塞型, 用于取消一个尚未完成的通信请求 它在 MPI 系统中设置一个取消该通信请求的标志后立即返回, 具体的取消操作由 MPI 系统在后台完成 MPI_CANCEL 允许取消已调用的通信请求, 但并不意味着相应的通信一定会被取消 : 若相应的通信请求已经开始, 则它会正常完成, 不受取消操作的影响 ; 若相应的通信请求还没开始, 则可以释放通信占用的资源 调用 MPI_CANCEL 后, 仍需用 MPI_WAIT,MPI_TEST 或 MPI_REQUEST_FREE 来释放该通信请求 MPI_TEST_CANCELLED(status,flag) 检测通信请求是否被取消 17

18 MPI 消息发送模式 MPI 提供四种点对点消息发送模式 标准模式 ( standard mode ) 缓冲模式 ( buffered mode ) 同步模式 ( synchronous mode ) 就绪模式 ( ready mode ) 每种发送模式都有相应的阻塞型和非阻塞型函数 18

19 MPI 消息发送模式 标准模式 ( standard mode ) 由系统决定是先将数据复制到一个缓存区, 然后返回 ; 还是等待数据发送出去后才返回 通常 MPI 系统会预留一定大小的缓存区 标准模式阻塞型 / 非阻塞型函数 : MPI_SEND/MPI_ISEND 缓冲模式 (buffered mode ) 将数据复制到一个用户指定的缓存区, 然后立即返回 消息的发送由 MPI 系统后台进行 用户必须保证提供的缓存区足以保存所需发送的数据 缓冲模式阻塞型 / 非阻塞型函数 : MPI_BSEND/MPI_IBSEND 19

20 MPI 消息发送模式 同步模式 ( synchronous mode ) 在标准模式的基础上要求确认接收方开始接收数据后才返回 同步模式阻塞型 / 非阻塞型函数 : MPI_SSEND/MPI_ISSEND 就绪模式 ( ready mode ) 发送时假设接收方已经处于就绪状态, 否则产生一个错误 缓冲模式阻塞型 / 非阻塞型函数 : MPI_RSEND/MPI_IRSEND MPI_BSEND MPI_SSEND MPI_RSEND 的用法同 MPI_SEND MPI_IBSEND MPI_ISSEND MPI_IRSEND 的用法同 MPI_ISEND 20

21 点对点通信函数小结 函数类型 模式 阻塞型 非阻塞型 消息发送 标准 MPI_SEND MPI_ISEND 缓冲 MPI_BSEND MPI_IBSEND 同步 MPI_SSEND MPI_ISSEND 就绪 MPI_RSEND MPI_IRSEND 消息接收 MPI_RECV MPI_IRECV 消息检测 MPI_PROBE MPI_IPROBE 等待 / 查询 MPI_WAIT MPI_TEST 释放通信请求 取消通信 MPI_WAITALL MPI_WAITANY MPI_WAITSOME MPI_REQUEST_FREE MPI_TESTALL MPI_TESTANY MPI_TESTSOME MPI_CANCEL MPI_TEST_CANCELLED 21

22 持久通信请求 持久通信请求用于以完全相同的方式重复收发的消息 目的是减少处理消息时的开销, 并简化 MPI 程序 持久通信请求收发步骤 : 先创建一个请求, 然后进行收发 持久通信请求的创建 ( 非阻塞型持久通信请求 ) MPI_SEND_INIT(buf,count,datatype,dest,tag,comm,request) MPI_RECV_INIT(buf,count,datatype,source,tag,comm,request) 持久通信请求的收发 MPI_START(request) MPI_STARTALL(count, array_of_requests) 持久通信请求的完成与释放 : 持久通信请求可反复调用 MPI_START 或 MPI_START_ALL 来进行多次通信 22

23 持久通信请求的创建 MPI_SEND_INIT(buf,count,datatype,dest, tag,comm,request) 参数含义与 MPI_ISEND 相同 该函数并不开始消息的实际发送, 而只是创建一个请求句柄, 通过参数 request 返回给用户程序, 留待以后实际发送时用 MPI_SEND_INIT 对应标准的非阻塞型消息发送, 相应地有 MPI_BSEND_INIT,MPI_SSEND_INIT 和 MPI_RSEND_INIT, 分别对应于缓冲 同步和就绪模式的非阻塞型消息发送 MPI_RECV_INIT(buf,count,datatype,source, tag,comm,request) 23

24 聚合通信 聚合通信 (collective communication) 是指多个进程之间的通信 根据数据的流向, 聚合通信可分为三种类型 : 一对多 多对一 多对多 根进程 (root): 在一对多和多对一中的 一 聚合通信一般实现三个功能 : 通信, 同步和计算 24

25 障碍同步 MPI_BARRIER(comm) 参数 IN comm 通信器 C F77 int MPI_Barrier(MPI_Comm comm) MPI_BARRIER(COMM, IERR) INTEGER COMM, IERR 这是 MPI 提供的唯一的一个同步函数 当 COMM 通信器中的所有进程都执行这个函数时才返回, 如果有一个进程没有执行此函数, 其余进程将处于等待状态 在执行完这个函数之后, 所有进程将同时执行其后的任务 25

26 广播 MPI_BCAST(buf, count, datatype, root, comm) 参数 C F77 INOUT buf 通信消息缓冲区的起始地址 IN count 将广播出去 / 或接收的数据个数 IN datatype 广播 / 接收数据的数据类型 IN root 广播数据的根进程的标识号 IN comm 通信器 int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm) MPI_BCAST(BUF, COUNT, DATATYPE, ROOT, COMM, IERR) <type> BUF(*) INTEGER COUNT,DATATYPE,ROOT,COMM,IERR root 进程将 buf 中的内容广播发送给通信器内的所有进程 ( 包括自身 ) 26

27 数据收集 数据收集指各个进程 ( 包括根进程 ) 将自己的一块数据发送给根进程, 根进程将这些数据合并成一个更大的数据块 收集相同长度的数据块 :MPI_GATHER 收集不同长度的数据块 :MPI_GATHERV 27

28 MPI_GATHER MPI_GATHER(sendbuf,sendcount,sendtype, recvbuf,recvcount,recvtype,root,comm) 根进程从通信器中的每个进程 ( 含根进程 ) 接收一个相同长度 相同类型的数据块, 并按发送进程的进程号依次存放到自已的 recvbuf 中, 合并成一个更大的数据块 参数 recvbuf recvcount recvtype 仅对根进程有意义 其作用就象一个进程组中的所有进程 ( 包括 root) 都执行了一个发送调用, 同时根进程执行了 np 次接收调用, 即 CALL MPI_SEND(SENDBUF, SENDCOUNT, SENDTYPE, ROOT,...) IF ( MYID.EQ. ROOT ) THEN DO I=0, NP-1 CALL MPI_RECV(RECVBUF + I*RECVCOUNT*extent(RECVTYPE), + RECVCOUNT, RECVTYPE, I,...) ENDDO ENDIF 28

29 MPI_GATHER C F77 int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) MPI_GATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE,ROOT, COMM, IERR 29

30 MPI_GATHERV MPI_GATHERV(sendbuf,sendcount,sendtype, recvbuf,recvcounts,displs, recvtype,root,comm) 这个函数是 MPI_GATHER 的扩充, 它允许从不同的进程中接收不同长度的消息 接收到的消息的存放位置由 recvbuf 和位置偏移参数 displs( 数组 ) 决定 根进程中 recvcounts(i) 与第 i 个进程的 sendcount 一致 root 进程从第 i 个进程接收 recvcounts(i) 个数据, 存放到以 recvbuf+displs(i)*extent(recvtype) 为首地址的缓冲区中 30

31 MPI_GATHERV C F77 int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root, MPI_Comm comm) MPI_GATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE, ROOT, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT,SENDTYPE,RECVTYPE,ROOT, COMM,IERR,RECVCOUNTS(*),DISPLS(*) 注 : 这里的 recvcounts 和 displs 是长度为 np 的数组 31

32 数据散发 数据散发是指根进程将一个大的数据块分成小块分别散发给各个进程 ( 包括根进程自己 ), 是数据收集的逆操作 散发相同长度的数据块 :MPI_SCATTER 散发不同长度的数据块 :MPI_SCATTERV 32

33 MPI_SCATTER MPI_SCATTER(sendbuf,sendcount,sendtype, recvbuf, recvcount, recvtype, root, comm) 根进程的 sendbuf 中有 np 个连续存放的数据块, 每个数据块包含 sendcout 个 sendtype 类型的数据, 根进程将这些数据块按进程的 标识号依次分发给各个进程 ( 包括 root 进程 ) 参数 sendbuf sendcount sendtype 仅对根进程有意义 C F77 int MPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE,ROOT, COMM, IERR 33

34 MPI_SCATTERV MPI_SCATTERV(sendbuf,sendcounts,displs,sendtype, recvbuf,recvcount,recvtype,root,comm) 是 MPI_SCATTER 的扩展, 它允许根进程向各个进程发送的长度不同且不一定是连续存放的数据块 C F77 int MPI_Scatterv(void *sendbuf, int sendcounts, int *displs, MPI_Datatype sendtype, void *recvbuf, int *recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) MPI_SCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT,SENDTYPE,RECVTYPE,ROOT, COMM,IERR,RECVCOUNTS(*),DISPLS(*) 34

35 SCATTER/V MPI_SCATTER MPI_SCATTERV 35

36 多点对多点的通信 全收集 与数据收集类似, 区别是所有进程都接收数据 相同长度数据块的全收集 :MPI_ALLGATHER 不同长度数据块的全收集 :MPI_ALLGATHERV 全收集散发 每个进程散发自己的一个数据块, 并且收集拼装所有进程散发过来的数据块 它既可以认为是数据全收集的扩展, 也可以被认为是数据散发的扩展 相同数据长度的全收集散发 :MPI_ALLTOALL 不同数据长度的全收集散发 :MPI_ALLTOALLV 36

37 MPI_ALLGATHER MPI_ALLGATHER(sendbuf,sendcount,sendtype, recvbuf,recvcount,recvtype,comm) 等价于依次以每个进程为根进程进 np 次 MPI_GATHER, 或以任意进程为根进程调用一次 MPI_GATHER, 紧接着 再对收集到的数据进行一次广播 C F77 int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm) MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERR 37

38 MPI_ALLGATHERV MPI_ALLGATHERV(sendbuf,sendcount,sendtype, recvbuf,recvcounts,displs,recvtype,comm) 不同长度数据块的全收集, 参数与 MPI_GATHERV 类似 进程 j 的 sendcount = 所有进程的 recvcounts(j) C F77 int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcounts, int * displs,mpi_datatype recvtype, MPI_Comm comm) MPI_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERR 38

39 ALLGATHER/V MPI_ALLGATHER MPI_ALLGATHERV 39

40 MPI_ALLTOALL MPI_ALLTOALL(sendbuf,sendcount,sendtype, recvbuf,recvcount,recvtype,comm) C F77 int MPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm) MPI_ALLTOALL(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERR) <type> INTEGER SENDBUF(*), RECVBUF(*) SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, IERR 相同长度数据块的全收集散发 进程 i 将 sendbuf 中的第 j 块数据发送至进程 j 的 recvbuf 中的第 i 个位置, sendbuf 和 recvbuf 均有 np 个连续的数据块构成 该操作相对于将数据 / 进程进行一次转置 40

41 MPI_ALLTOALLV MPI_ALLTOALLV(sendbuf,sendcounts,sdispls, sendtype,recvbuf,recvcounts, rdispls,recvtype,comm) C F77 int MPI_Alltoallv(void *sendbuf, int sendcounts, int sdispls, MPI_Datatype sendtype, void* recvbuf, int recvcounts, int rdispls, MPI_Datatype recvtype, MPI_Comm comm) MPI_ALLTOALLV(SENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE, RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, IERR) <type> SENDBUF(*), RECVBUF(*) INTEGER SENDCOUNT, SENDTYPE, COMM, IERR, RECVCOUNT,RECVTYPE,SDISPLS(*),RDISPLS(*) 不同长度数据块的全收集散发 41

42 ALLTOALL/V MPI_ALLTOALL MPI_ALLTOALLV 42

43 归约 归约 :MPI_REDUCE 该函数将通信器内每个进程输入缓冲区 (sendbuf) 中的数据按给定的操作进行简单运算, 并将其结果返回到根进程的输出缓冲区 (recvbuf) 中 归约运算可以是 MPI 预定义的运算操作, 也可以是用户自定义的运算 自定义归约运算操作 :MPI_OP_CREATE 用户自己创建一个新的归约运算 释放自定义的归约操作 :MPI_OP_FREE 自定义的归约运算不再需要时, 可以将其释放, 以释放其占用的资源 43

44 MPI_REDUCE MPI_REDUCE(sendbuf,recvbuf,count,datatype, op,root,comm) 参数 recvbuf 只对根进程有意义 所有进程所提供的数据长度相同 类型相同 参数 op 用来指定归约所使用的运算, 可以是 MPI 预定义的, 也可以是用户自行定义的, 但必须满足结合律 C F77 int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) MPI_REDUCE(SENDBUF,RECVBUF,COUNT,DATATYPE, OP,ROOT,COMM,IERR) <type> SENDBUF(*), RECVBUF(*) INTEGER COUNT,DATATYPE,OP,ROOT,COMM,IERR 44

45 MPI_REDUCE MPI_REDUCE 45

46 归约运算 MPI 中预定义的运算操作 (op) 操作名 含义 操作名 含义 MPI_MAX 求最大 MPI_LXOR 逻辑异或 MPI_MIN 求最小 MPI_BAND 二进制按位与 MPI_SUM 求和 MPI_BOR 二进制按位或 MPI_PROD 求积 MPI_BXOR 二进制按位异或 MPI_LAND 逻辑与 MPI_MAXLOC 求最大值和所在位置 MPI_LOR 逻辑或 MPI_MINLOC 求最小值和所在位置 46

47 归约运算 每种归约运算操作所允许的数据类型 运算操作 OP MPI_MAX, MPI_MIN MPI_SUM, MPI_PROD MPI_LAND, MPI_LOR, MPI_LXOR MPI_BAND, MPI_BOR, MPI_BXOR 允许的数据类型整型和实型整型 实型和复型 C 的整型和 Fortran 的逻辑型整型和二进制型 (MPI_BYTE) MPI_MAXLOC 和 MPI_MINLOC 是两个特殊的运算, 它们不仅求最值, 而且还会记下最值的位置, 所以需要一种特殊的数据类型, 即数对 47

48 自定义归约操作 MPI_OP_CREATE(func, commute, op) 参数 C F77 IN func 用户自定义的函数 IN commute 自定义的运算是否满足交换律 OUT op 归约运算操作名 int MPI_Op_create(MPI_User_function *func, int commute, MPI_Op *op) MPI_OP_CREATE(FUNC, COMMUTE, OP, IERR) EXTERNAL FUNC LOGICAL COMMUTE INTEGER OP, IERR 参数中 func 是用户提供的用于完成该运算的外部函数名 MPI_OP_CREATE 将自定义函数 func 和 op 联系起来 48

49 自定义归约操作 MPI 对用户自定义的外部函数 func 有严格要求, 必须是具有如下形式的接口 : C F77 void func(void *invec, void *inoutvec, int *len, MPI_Datatype *datatype) FUNCTION FUNC(INVEC,INOUTVEC,LEN,DATATYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, DATATYPE invec 和 inoutvec 分别指出将要被归约的数据所在的缓冲区的首址,len 指出将要归约的元素个数,datatype 指出归约对象的数据类型, 函数的返回结果保存在 inoutvec 中 49

50 MPI_OP_FREE MPI_OP_FREE(op) 当一个用户自定义的运算不再需要时, 可以将其释放, 以释放其占用的 系统资源 C F77 int MPI_Op_free(MPI_Op *op) MPI_OP_FREE(OP, IERR) INTEGER OP, IERR 50

51 其它归约操作 全归约 :MPI_ALLREDUCE 作用相当于在 MPI_REDUCE 后再将结果进行一次广播 归约散发 :MPI_REDUCE_SCATTER 将归约结果分散给所有的进程 ( 每个进程存储部分结果 ) 扫描 :MPI_SCAN 可以看作是一种特殊的归约, 每一个进程都对排在它前面的进程进行归约操作, 操作结束后, 第 i 个进程中的 recvbuf 中将包含前 i 个进程的归约结果 51

52 全归约 MPI_ALLREDUCE(sendbuf,recvbuf,count, datatype,op,comm) C F77 int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERR) <type> SENDBUF(*), RECVBUF(*) INTEGER COUNT, DATATYPE, OP, COMM, IERR 所有进程的 recvbuf 将同时获得归约运算的结果 52

53 全归约 MPI_ALLREDUCE 53

54 归约散发 MPI_REDUCE_SCATTER(sendbuf,recvbuf, recvcounts,datatype,op,comm) C F77 int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) MPI_REDUCE_SCATTER(SENDBUF, RECVBUF, RECVCOUNTS, DATATYPE, OP, COMM, IERROR) <type> SENDBUF(*), RECVBUF(*) INTEGER DATATYPE,OP,COMM,IERR,RECVCOUNTS(*) MPI_REDUCE_SCATTER 对由 sendbuf, count 和 datatype 指定的数据 np 进行归约操作, 这里 count= i= 1 recvcounts() i 然后将归约结果散发给所有的进程, 其中进程 i 获得的数据块长度为 recvcounts(i) 54

55 归约散发 MPI_REDUCE_SCATTER 55

56 扫描 MPI_SCAN(sendbuf,recvbuf,count,datatype,op,comm) C F77 int MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) MPI_SCAN(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERR) <type> SENDBUF(*), RECVBUF(*) INTEGER COUNT, DATATYPE, OP, COMM, IERR 每一个进程都对排在它前面的进程进行归约操作, 操作结束后, 第 i 个进程中的 recvbuf 中将包含前 i 个进程的归约结果 0 号进程接收缓冲区中的数据就是其发送缓冲区的数据 56

57 扫描 MPI_SCAN 57

58 本讲函数小结 点对点 持久通信 MPI_SEND MPI_ISEND MPI_BSEND MPI_IBSEND MPI_SSEND MPI_ISSEND MPI_RSEND MPI_IRSEND MPI_RECV MPI_IRECV MPI_PROBE MPI_IPROBE MPI_WAIT MPI_TEST MPI_WAITALL MPI_TESTALL MPI_WAITANY MPI_TESTANY MPI_WAITSOME MPI_TESTSOME MPI_REQUEST_FREE MPI_CANCEL MPI_TEST_CANCELLED MPI_SEND_INIT MPI_RECV_INIT MPI_START MPI_STARTALL 一对多 MPI_BCAST MPI_SCATTER MPI_SCATTERV 多对一 MPI_GATHER MPI_GATHERV MPI_REDUCE 多对多 其它 MPI_ALLGATHER MPI_ALLGATHERV MPI_ALLTOALL MPI_ALLTOALLV MPI_ALLREDUCE MPI_REDUCE_SCATTER MPI_SCAN MPI_BARRIER 58

59 上机作业 修改计算 pi 的程序, 要求使用 MPI_BCAST 和 MPI_REDUCE 修改计算 pi 的程序, 将任务分配改为按块分配 : 假设有 p 个进程, 将 n 个区间顺序分成 p 块, 每个进程负责其中一块的计算, 注意 n 不是 p 的倍数时要尽量保持负载平衡 参考程序 :ex4pi.f 59

Parallel Programming with MPI

Parallel Programming  with MPI MPI 并行编程入门 中国科学院计算机网络信息中心超级计算中心 聚合通信 定义 三种通信方式 聚合函数列表 同步 广播 收集 散发 全散发收集 归约 定义 communicator 1 3 4 5 0 2 一个通信器的所有进程参与, 所有进程都调用聚合通信函数 MPI 系统保证聚合通信函数与点对点调用不会混淆 聚合通信不需要消息标号 聚合通信函数都为阻塞式函数 聚合通信的功能 : 通信 同步 计算等

More information

1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式

1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式 Lecture15 阻塞通信和非阻塞通信 1 学习目标了解并掌握 MPI 的各种非阻塞通信形式及其作用, 并能运用 MPI 的非阻塞通信语句编写高级的并行程序 2 重点和难点非阻塞通信的语义特点, 如何运用非阻塞通信的特点来实现特定的功能和性能 3 学习方法所有的阻塞调用形式都有其相应的非阻塞调用形式, 此外非阻塞调用还有其特殊的接口形式 虽然非阻塞调用的形式很多, 但是要把握它们, 最根本的一点就是非阻塞通信的基本语义

More information

Linux Linux Linux

Linux Linux Linux 2003 2003 8 28 http://lssc.cc.ac.cn/training2003 1 3 23 Linux 37 3.1............................................... 37 3.2 Linux..................................... 37 3.3 Linux..................................

More information

untitled

untitled MPICH anzhulin@sohu.com 1 MPICH for Microsoft Windows 1.1 MPICH for Microsoft Windows Windows NT4/2000/XP Professional Server Windows 95/98 TCP/IP MPICH MS VC++ 6.x MS VC++.NET Compaq Visual Fortran 6.x

More information

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University

More information

chi@sccas.cn, chi@sc.cnic.cn http://lssc.cc.ac.cn/ http://www.sccas.cn/ http://www.scgrid.cn/ http://www.cngrid.org/ 2005 4 6 3 5 1.1............................ 5 1.2............................. 6 1.2.1..........................

More information

模板

模板 MPI MPI MPI MPI MPI MPI 4 18 9% 5 ? 6 ? 7 数 个数 数 个数 个数 个数 8 ccnuma; SMP MPP; Cluster 9 10 11 12 13 MPI MPI MPI MPI MPI? MPI MPI MPI MPI 15 MPI? MPI(Message Passing Interface ) 1994 5 MPI MPI MPI MPI C

More information

Microsoft PowerPoint - KN002.ppt

Microsoft PowerPoint - KN002.ppt MPI II 1300141 14114 16001630 1630 MPI 11 11 3 MPI MPI-110 MPI- SPMD Single Program/Instruction Multiple Data CPU 4 PE: Processing Element PE #0 Program Data #0 PE #1 Program Data #1 SPMD mpirun -np M

More information

Microsoft PowerPoint - Tongji_MPI编程初步

Microsoft PowerPoint - Tongji_MPI编程初步 并行编程初步 张丹丹 上海超级计算中心 2011-3-4 提纲 引言 认识 MPI 编程 MPI 编程简介 实例 并行计算机体系架构 共享存储 (Shared Memory) 并行计算机体系架构 分布式存储 (Distributed Memory) 混合架构 (Hybrid) 并行计算机体系架构 并行编程模型 数据并行模型 相同的操作同时作用于不同的数据 共享变量模型 用共享变量实现并行进程间的通信

More information

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University

More information

热传导方程和对流方程 卢朓 Parabolic equation 热传导方程和对流方程 热传导方程和对流方程 卢朓 Parabolic equation 热传导方程和对流方程 对流方程 MPI 的时间函数 MPI 的聚合通信函数 Homework 卢朓 Department of Science a

热传导方程和对流方程 卢朓 Parabolic equation 热传导方程和对流方程 热传导方程和对流方程 卢朓 Parabolic equation 热传导方程和对流方程 对流方程 MPI 的时间函数 MPI 的聚合通信函数 Homework 卢朓 Department of Science a Department of Scence and Engneerng Computng School of Mathematcs School Pekng Unversty Department of Scence and Engneerng Computng School of Mathematcs School Pekng Unversty October 9, 007 October 9, 007

More information

目 录 参 考 材 料 1 第 一 章 预 备 知 识 2 1.1 高 性 能 并 行 计 算 机 系 统 简 介.................................. 2 1.1.1 微 处 理 器 的 存 储 结 构.................................

目 录 参 考 材 料 1 第 一 章 预 备 知 识 2 1.1 高 性 能 并 行 计 算 机 系 统 简 介.................................. 2 1.1.1 微 处 理 器 的 存 储 结 构................................. MPI 并 行 编 程 讲 稿 张 林 波 中 国 科 学 院 数 学 与 系 统 科 学 研 究 院 科 学 与 工 程 计 算 国 家 重 点 实 验 室 1999 年 7 月 ( 最 后 修 订 :2012 年 7 月 ) i 目 录 参 考 材 料 1 第 一 章 预 备 知 识 2 1.1 高 性 能 并 行 计 算 机 系 统 简 介..................................

More information

消息传递并行编程环境MPI.doc

消息传递并行编程环境MPI.doc 973 MPI PETS 8 15 8 16 8 17 MPI MPI MPI MPI 2 MPI PETS PETS 1 1971 7 1992 1997 1999 2 MPI MPI MPI 1 MPI MPI MPI 2 - u=f MPI 3 1 proess 1 2 2 CPU 4 send reeive barrier redution 1 2 3 CPU soket, 4 : API

More information

Parallel Programming with MPI

Parallel Programming  with MPI MPI 并行编程入门 中国科学院计算机网络信息中心超级计算中心 参考材料 张林波清华大学出版社莫则尧科学出版社都志辉清华大学出版社 消息传递平台 MPI 什么是 MPI (Message Passing Interface) 是函数库规范, 而不是并行语言 ; 操作如同库函数调用 是一种标准和规范, 而非某个对它的具体实现 (MPICH 等 ), 与编程语言无关 是一种消息传递编程模型, 并成为这类编程模型的代表

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第四讲 消息传递编程接口 MPI 一 MPI 编程基础 主要内容 MPI 安装 程序编译与运行 MPI 编程基础 MPI 程序基本结构 MPI 数据类型 消息发送和接收 MPI 一些常用函数 MPI 介绍 Message Passing Interface 消息传递编程标准, 目前最为通用的并行编程方式 提供一个高效 可扩展 统一的并行编程环境 MPI 是一个库, 不是一门语言,MPI 提供库函数

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 机群应用开发 并行编程原理及程序设计 Parallel Programming: Fundamentals and Implementation 占杰 zhanjie@dawningcomcn 曙光信息产业有限公司 2010 年 1 月 2010 年 1 月 1 参考文献 黄铠, 徐志伟著, 陆鑫达等译 可扩展并行计算技术, 结构与编程 北京 : 机械工业出版社, P33~56,P227~237,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第六讲 消息传递编程接口 MPI 三 MPI 数据类型 1 MPI 数据类型 MPI 数据类型定义 MPI 数据类型的大小 上下界 域及相关函数 MPI 新数据类型的创建 提交与释放 MPI 数据的打包与解包 2 MPI 数据类型 MPI 原始数据类型 MPI 消息传递通常只能处理连续存放的同一类型的数据 MPI 自定义数据类型 如果需要发送或接收具有复杂结构的数据时, 可以使用自定义数据类型 使用自定义数据类型的好处

More information

大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹

大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹 MPI 平行程式設計 勁智數位科技股份有限公司 技術研發部林勝峰 sflin@infowrap.com.tw 大綱介紹 MPI 標準介紹 MPI 的主要目標 Compiler & Run 平行程式 MPICH 程式基本架構 點對點通訊 函數介紹 集體通訊 函數介紹 MPI (Message Passing Interface) Version1.0:June, 1994. Version1.1:June,

More information

投影片 1

投影片 1 平行運算簡介 / 實例操作企鵝也會的 MPICH 研究員 : 鄧偉華 wade@nchc.org.tw 什麼是平行計算 傳統 : 單一程序 單一 CPU 什麼是平行計算 ( 續 ) 平行計算 程序切割 多 CPUs 為什麼要平行計算 簡省時間 解決大型問題 即時性 使用更多來自網路上的資源 使用大量 便宜 PCs 取代超級電腦 記憶體不足 平行計算種類 Flynn's taxonomy 多處理器架構

More information

Parallel Programing with MPI Binding with Fortran, C,C++

Parallel Programing with MPI Binding with Fortran, C,C++ M P I 并行编程 C/C++/Fortran 语言绑定 ID: 独峰箫狼 版本 : v1.2.1 :tkong@mail.sdu.edu.cn 1 目录 并行简介 MPI 概述 MPI 编程 MPI 基本概念 六个基本函数 详解消息通信域 衍生数据类型 点对点通信 群集通信 一些练习程序 2 并行简介 何谓并行 如何创建并行程序 并行结构 并行编程模型 3 何谓并行 多个线程同时进行工作 就像电路的并联可以起到分流的作用一样

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 机群应用开发 并行编程原理及程序设计 Parallel Programming: Fundamentals and Implementation 戴荣 dair@dawningcomcn 曙光信息产业有限公司 2008 年 7 月 2008 年 7 月 1 参考文献 黄铠, 徐志伟著, 陆鑫达等译 可扩展并行计算技术, 结构与编程 北京 : 机械工业出版社, P33~56,P227~237, 2000

More information

目录 第一章 MPI 简介 消息传递编程的相关概念 分布式内存 消息传输 进程 消息传递库 发送 / 接收 同步 / 异步 阻塞

目录 第一章 MPI 简介 消息传递编程的相关概念 分布式内存 消息传输 进程 消息传递库 发送 / 接收 同步 / 异步 阻塞 神威蓝光 计算机系统 MPI 用户手册 国家超级计算济南中心 2011 年 03 月 目录 第一章 MPI 简介... 1 1.1 消息传递编程的相关概念... 2 1.1.1 分布式内存... 2 1.1.2 消息传输... 3 1.1.3 进程... 3 1.1.4 消息传递库... 3 1.1.5 发送 / 接收... 3 1.1.6 同步 / 异步... 3 1.1.7 阻塞通讯... 4

More information

PowerPoint Presentation

PowerPoint Presentation 并行计算 十五 分布存储系统并行编程 分布存储系统并行编程 14.1 基于消息传递的并行编程 14.2 MPI 并行编程 6 个基本函数组成的 MPI 子集 MPI 消息 点对点通信 群集通信 SPMD 和 MPMD SPMD 各个进程是同构的, 多个进程对不同的数据执行相同的代码 ( 一般是数据并行 ) 常对应并行循环, 数据并行结构, 单代码 MPMD 各个进程是异构的, 多个进程执行不同的代码

More information

07-1.indd

07-1.indd 1 02 04 13 16 19 21 24 28 32 38 44 49 54 12 27 57 58 59 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Å 20 ELMFIRE Procon LES EFSS CohortComparator GPaw 21 22 ï ~ ~ ~ ~ 23 24 25 26 CPU usage time (s) time

More information

to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 to AztecOO Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007 to AztecOO Department of Science and Engineering Computing School of Mathematics

More information

MPI实验.doc

MPI实验.doc MPI 实验手册 2014 年 5 月 实验环境说明 : 虚拟机 :Vmware Workstation 9 Linux 系统 :CentOS 6.3 每台机器上有 3 个未配置的虚拟机节点用于进行 MPI 环境配置实验, 有 3 个已配置好 的节点可以直接运行 MPI 程序 3 台已配置好的 Linux 虚拟机 IP 地址如下, 可以登录系统用 ifconfig 指令查看 node1 192.168.1.11

More information

Trilinos 简介 Trilinos 简介 卢朓 Trilinos 简介 卢朓 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos Epetra

Trilinos 简介 Trilinos 简介 卢朓 Trilinos 简介 卢朓 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos 简介 Trilinos 的安装和使用 Trilinos 简介 Trilinos Epetra Department of Science and Engineering Computing School of Mathematics School Peking University Department of Science and Engineering Computing School of Mathematics School Peking University August 14,

More information

mpi

mpi MPI I II MPI FORTRAN C MPI MPI C /FORTRAN MPI MPI MPI MPI MPI MPI-2 MPI-1 MPI-2 MPI MPI ...IX...XI... XII...XIV... XVII...1 1...2 1.1...2 1.1.1...2 1.1.2...3 1.2...4 1.3...5 2...6 2.1...6 2.2...7 2.3...8

More information

第7章-并行计算.ppt

第7章-并行计算.ppt EFEP90 10CDMP3 CD t 0 t 0 To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox 10t 0 t 0 n p Ts Tp if E(n, p) < 1 p, then T (n) < T (n, p) s p S(n,p) = p : f(x)=sin(cos(x))

More information

Microsoft Word - FPKLSC_21.docx

Microsoft Word - FPKLSC_21.docx 足 印 门 徒 训 练 课 程 儿 童 / 少 年 篇 ( 组 长 使 用 ) 第 21 课 帮 助 人 和 耶 稣 成 为 朋 友 足 印 : 耶 稣 想 我 们 带 朋 友 去 找 祂 欢 迎 (7 分 钟 ) 当 父 母 生 命 师 傅 和 孩 子 们 来 到 的 时 候, 请 热 情 地 欢 迎 他 们 每 一 个 人 鼓 励 一 位 年 轻 人 与 你 一 同 去 欢 迎 参 加 者 的

More information

Department of Science and Engineering Computing School of Mathematics School Peking University August 14, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University August 14, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University August 14, 2007 Department of Science and Engineering Computing School of Mathematics School Peking University

More information

Slide 1

Slide 1 HPC 最佳实例 Tools, Compilers, and profiling 刘通 2010 年 10 月国际高性能计算咨询委员会中国区总监 Compilers and Libraries 免费编译器 GNU Compiler Open64 付费编译器 PGI Intel 數學函数庫 ACML Intel MKL MPI 库 Open MPI MVAPICH Platform MPI Intel

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

<4D6963726F736F667420576F7264202D20313034B0EABB79A4E5B8D5C344BBBCB065AAA9>

<4D6963726F736F667420576F7264202D20313034B0EABB79A4E5B8D5C344BBBCB065AAA9> 嘉 義 縣 104 年 新 港 溪 北 六 興 宮 正 黑 麵 三 媽 盃 小 六 學 藝 競 試 國 文 試 卷 一 一 般 選 擇 題 : 1. 下 列 選 項 中, 哪 一 組 字 的 讀 音 是 相 同 的?(A) 躡 足 / 攝 影 (B) 淒 慘 / 妻 兒 (C) 漠 不 關 心 / 眼 角 膜 (D) 韋 編 / 偉 人 2. 下 列 內 的 部 首, 何 者 正 確?(A) 黎 明

More information

凡 例 一 高 淳 县 历 史 悠 久, 文 物 古 迹 颇 丰, 为 全 面 系 统 地 保 存 各 类 文 物 资 料, 介 绍 文 物 工 作 情 况, 达 到 教 育 后 人, 提 供 专 业 研 究 的 目 的, 特 编 纂 本 志 二 本 志 采 用 记 志 述 图 表 等 多 种 体 裁, 翔 实 记 载 高 淳 县 自 旧 石 器 时 代 至 民 国 年 间 的 文 化 遗 存 文

More information

康體藝術

康體藝術 320 321 0.12% (340 ) 3.44% (1.001 ) 0.30% (860 ) 5.93% (7.542 ) 7.83% (2.277 ) ( 7,960 1,810 ) 3.36% (9,770 ) 9.08% (2.642 ) 20.27% (5.898 ) ( ) 29.67% (8.63 ) 322 π 323 324 325 326 327 328 329 330 331

More information

mpic_2002

mpic_2002 C 語言 MPI 平行計算程式設計 編著 : 鄭守成 期 間 : 民國 91 年 1 月 1 日 電話 : (03) 5776085 x 305 E-mail : c00tch00@nchc.gov.tw 1 C 語言 MPI 平行計算程式設計...1 第一章 前言...4 1.1 MPI 平行計算軟體...5 1.2 國家高速電腦中心的平行計算環境...6 1.3 在 IBM SP2 上如何使用

More information

- 22-4 58 4 5 1998 12 415 416 6 431 7 1993 359

- 22-4 58 4 5 1998 12 415 416 6 431 7 1993 359 - 21-1 2 1 52 1963 1 7 154 2 1478 62 3 202 193-21 - - 22-4 58 4 5 1998 12 415 416 6 431 7 1993 359 - 23-8 8 5 1573 9 10 2120 1982 2 11 1480 729-730 - 23 - - 24-12 1007~1072 14 15 12 1997 4 9-10 13 1997

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

Microsoft PowerPoint - PC14.pptx

Microsoft PowerPoint - PC14.pptx 并行计算 结构 算法 编程 主讲教师 : 谢磊 第十四章分布存储系统并行编 程 分布存储系统并行编程 14.1 基于消息传递的编程 14.2 MPI 并行编程 14.3 PVM 并行编程 14.4 基于数据并行的并行编程 14.5 HPF 并行编程 分布存储系统并行编程 分布存储系统的主要特点 系统通过互联网络将多个处理器连接起来 每个处理器均有自己的局部存储器, 所有的局部处理器就构成了整个地址空间

More information

Slide 1

Slide 1 高速网络提升 HPC 应用效率 2012 年 10 月 刘通 HPC Advisory Council 亚太总监 HPC 为什么需要 InfiniBand 高带宽 40 56Gb/s, 甚至 100Gb/s 低延迟 小于 1 微秒级 高可靠性 链路层流量控制 拥塞控制 完整 CPU 负荷卸载 基于硬件的传输协议 可靠传输协议 不调用 Kernel (Kernel Bypass) 远端访问内存 RDMA

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

五 福 三 社 P2 新 版 個 資 法 已 於 2012 年 10 月 1 號 正 式 上 路, 其 適 用 對 象 包 括 了 自 然 人 ( 也 就 是 一 般 人 ) 法 人 ( 企 業 ) 或 其 他 任 何 3 人 以 上 的 團 體 對 公 司 企 業 而 言, 如 果 洩 露 消 費

五 福 三 社 P2 新 版 個 資 法 已 於 2012 年 10 月 1 號 正 式 上 路, 其 適 用 對 象 包 括 了 自 然 人 ( 也 就 是 一 般 人 ) 法 人 ( 企 業 ) 或 其 他 任 何 3 人 以 上 的 團 體 對 公 司 企 業 而 言, 如 果 洩 露 消 費 高 雄 市 立 五 福 國 民 中 學 101 學 年 度 第 2 學 期 3 年 級 第 一 次 段 考 社 會 學 習 領 域 試 題 卷 五 福 三 社 P1 三 年 級 班 座 號 姓 名 : 代 號 :30 答 案 卡 塗 寫 注 意 事 項 1. 答 案 卡 劃 記 時, 必 頇 用 黑 色 2B 鉛 筆 塗 黑 塗 滿, 不 可 超 出 圈 外 2. 年 班 級 座 號 科 目 請 劃

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

用户大会 论文集2.2.doc

用户大会 论文集2.2.doc MagGis MapGis GIS MagGis API DLL MapGis VC++ VB BC++ Delphi., Windows API MapGis VC++V Delphi Delphi Delphi MapGis Delphi Delphi Windows Delphi Delphi MapGis MapGis DLL API MapGis function _InitWorkArea(HINST:Integer):Integer;

More information

Microsoft PowerPoint - CEM-07-Parallel.pptx

Microsoft PowerPoint - CEM-07-Parallel.pptx Parallel Scientific Computing by Computer Cluster Jiun-Hwa Lin Department of Electrical Engineering National Taiwan Ocean University Outline Introduction Simple Cluster Setup Real Examples at NTOU Conclusions

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

跨 境 犯 罪 案 例 報 告 擄 人 勒 贖 案 件 檢 座 約 晚 上 12 點 半 在 辦 公 室 可 以 嗎? 24 日 清 晨 見 過 證 據 資 料 後, 同 意 緊 急 上 線, 並 立 即 製 作 聲 請 書, 並 獲 得 法 院 准 許, 此 後 一 路 積 極 續 線 及 擴 線

跨 境 犯 罪 案 例 報 告 擄 人 勒 贖 案 件 檢 座 約 晚 上 12 點 半 在 辦 公 室 可 以 嗎? 24 日 清 晨 見 過 證 據 資 料 後, 同 意 緊 急 上 線, 並 立 即 製 作 聲 請 書, 並 獲 得 法 院 准 許, 此 後 一 路 積 極 續 線 及 擴 線 雄 踞 檢 察 偵 查 實 務 篇 跨 境 犯 罪 案 例 報 告 - 擄 人 勒 贖 案 件 檢 察 官 林 俊 傑 壹 序 言 - 神 隱 少 女 檢 座, 有 一 件 擄 人 勒 贖 案 件, 一 位 台 商 在 大 陸 地 區 被 擄 人 勒 贖,100 年 1 月 10 日 高 雄 市 刑 大 員 警 到 辦 公 室 來 訪, 看 過 員 警 整 理 的 偵 查 報 告 與 初 步 之 證

More information

5. 閱 讀 下 文, 推 斷 內 最 適 合 填 入 的 詞 語 依 序 為 何? 人 也 真 是 一 個 絕 字, 一 邊 向 左, 一 邊 向 右, 一 副 的 樣 子, 偏 又 相 連 著, 各 說 各 話 各 走 各 路, 卻 又 人, 這 麼 一 個 簡 單 的 字, 竟 包 含 如 此

5. 閱 讀 下 文, 推 斷 內 最 適 合 填 入 的 詞 語 依 序 為 何? 人 也 真 是 一 個 絕 字, 一 邊 向 左, 一 邊 向 右, 一 副 的 樣 子, 偏 又 相 連 著, 各 說 各 話 各 走 各 路, 卻 又 人, 這 麼 一 個 簡 單 的 字, 竟 包 含 如 此 103 學 年 度 四 技 二 專 統 一 入 學 測 驗 國 文 試 題 一 選 擇 題 ( 一 ) 綜 合 測 驗 20 題 1. 下 列 各 組 內 的 字, 何 者 讀 音 不 同? (A) 諮 諏 善 道 / 渡 大 海, 入 荒 陬 (B) 傴 僂 提 攜 / 嘔 啞 嘲 哳 難 為 聽 (C) 跫 音 不 響 / 秋 蟬 兒 噪 罷 寒 蛩 兒 叫 (D) 形 容 枯 槁 / 阿 縞

More information

涓浗鏂囧寲

涓浗鏂囧寲 第 三 部 分 中 国 文 化 一 选 择 题 111. 中 国 古 代 伟 大 的 思 想 家 和 教 育 家 被 联 合 国 教 科 文 组 织 列 为 世 界 十 大 文 化 名 人 之 一 A. 庄 子 B. 老 子 C. 韩 非 子 D. 孔 子 答 案 :D 112. 第 一 部 被 介 绍 到 西 方 去 的 中 国 古 代 戏 曲 是, 它 是 著 名 的 元 杂 剧 四 大 悲 剧

More information

实施生成树

实施生成树 学习沉淀成长分享 Spanning-tree 红茶三杯 ( 朱 SIR) 微博 :http://t.sina.com/vinsoney Latest update: 2012-06-01 STP 的概念 冗余拓扑 Server/host X Router Y Segment 1 Switch A Switch B Segment 2 冗余拓扑能够解决单点故障问题 ; 冗余拓扑造成广播风暴, 多帧复用,

More information

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架 第 一 章 绪 论 1. 问 题 与 文 献 本 文 试 图 探 讨 的 核 心 问 题, 一 言 以 蔽 之, 是 要 理 解 并 诠 释 荀 子 思 想 的 基 本 性 格 先 交 代 研 究 方 法 迄 今 为 止 的 荀 学 研 究 1 大 致 存 在 两 种 研 究 框 架 第 一 种 研 究 框 架 是 理 学 研 究 的 理 论 框 架 2, 该 框 架 主 张 以 孔 孟 作 为 研

More information

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

数学分析(I)短课程 [Part 2]   4mm 自然数、整数和有理数 .. 数学分析 (I) 短课程 [Part 2] 自然数 整数和有理数 孙伟 华东师范大学数学系算子代数中心 Week 2 to 18. Fall 2014 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014 1 / 78 3. 自然数理论初步 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

Slide 1

Slide 1 基本编译和纠错 吴宏文 hongwenwu@cn.ibm.com IBM STG Lab Services and Training 1 目录 AIX 上编译介绍 MPI 编译运行介绍 一般程序的纠错 2 一般编译过程 源文件 source 编译 目标文件 object 连接 可执行文件 exe 执行 3 一般编译过程 Unix 系统中, 可执行文件没有统一的后缀, 系统从文件的属性来区分可执行文件和丌可执行文件

More information

求出所有的正整数 n 使得 20n + 2 能整除 2003n n 20n n n 20n n 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y =

求出所有的正整数 n 使得 20n + 2 能整除 2003n n 20n n n 20n n 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y = 求出所有的正整数 n 使得 20n + 2 能整除 2003n + 2002 n 20n + 2 2003n + 2002 n 20n + 2 2003n + 2002 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y = y x y 对于任意正整数 n, 记 n 的所有正约数组成的集合为 S n 证明 : S n 中至多有一半元素的个位数为

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

More information

0書名頁

0書名頁 1999 2009 002 004 006 008 011 139 140 151 169 186 203 216 232 247 248 251 254 259 260 261 267 002 003 004 005 006 007 008 009 02 08 大事 1999 紀 1999 1999 大事 紀 1999 記協舉辦 媒體與人權座談會 台灣新聞記者協會針對新聞報導有關侵犯人權的部分

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

Microsoft Word - 2CA13內文.doc

Microsoft Word - 2CA13內文.doc 006 公 民 - 歷 屆 試 題 全 解 答 案 是 完 全 正 確 的? : 能 源 使 用 愈 多, 除 了 帶 來 經 濟 成 長 外, 相 對 的, 也 會 帶 來 負 面 的 環 保 問 題 我 們 在 發 展 經 濟 的 過 程 中, 若 不 能 兼 顧 環 境 資 源 的 保 育, 將 賠 上 後 代 子 孫 的 生 存 環 境, 這 是 下 列 那 一 種 理 念? 比 較 利 益

More information

OB1

OB1 SIMATIC 克索稳定杆淬火机 20150813\ 2018-06-14 09:29: 30 OB1 - < 离线 > Cycle Execution 名称 : 系列 : 作者 : 版本 : 0.1 块版本 : 2 时间标志代码 : 2018-02-10 14:06:32 接口 : 1996-02-15 16:51:12 长度 ( 块 / 逻辑 / 数据 ): 11154 10520 00030

More information

乌鲁木齐城市交通改善项目Ⅱ

乌鲁木齐城市交通改善项目Ⅱ 世 界 银 行 贷 款 发 展 新 疆 职 业 教 育 项 目 少 数 民 族 发 展 行 动 计 划 ( 预 评 估 稿 ) 乌 鲁 木 齐 长 治 久 安 社 会 经 济 咨 询 有 限 公 司 乌 鲁 木 齐 中 国 二 〇 一 四 年 十 一 月 少 数 民 族 发 展 行 动 计 划 总 负 责 人 : 李 泽 ( 新 疆 社 会 科 学 院 ) 少 数 民 族 发 展 行 动 计 划 主

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

(Microsoft Word - \251I\250D\245D\246W

(Microsoft Word - \251I\250D\245D\246W 第 一 週 週 一 呼 求 主 名 ( 一 ) 哀 三 55 耶 和 華 阿, 我 從 極 深 的 坑 裏 呼 求 你 的 名 56 你 曾 聽 見 我 的 聲 音 ; 求 你 不 要 掩 耳 不 聽 我 的 呼 吸, 我 的 呼 籲 賽 十 二 4 上 在 那 日, 你 們 要 說, 當 稱 謝 耶 和 華, 呼 求 祂 的 名! 6 錫 安 的 居 民 哪, 當 揚 聲 歡 呼, 因 為 以 色

More information

重勘信息的哲学含义 ¼ ½ ¾ ¼ ½ ¾

重勘信息的哲学含义 ¼ ½ ¾ ¼ ½ ¾ 重勘信息的哲学含义 肖 峰 信息不能以任何方式归结为物质 它既不是物质内在既成的东西 也不是纯粹的自然现象 更不是可以离开主体而独立存在的纯客观现象或无处不在的普遍现象 哲学含义上的信息是一种非物质的存在 是主体对对象的感知 辨识和建构 也是生命控制系统尤其是神经系统的一种机能 信息与 意义 关联 是一种属人的认识现象 不存在所谓的 本体论信息 而只存在认识论意义上的信息 信息的哲学含义应与信息的日常用法具有连续性

More information

奇特的一生(Эта странная жизнь)

奇特的一生(Эта странная жизнь) 凡 剑 (Ken777) 藏 书 奇 特 的 一 生 苏 格 拉 宁 著 侯 焕 闳 唐 其 慈 译 外 国 文 学 出 版 社 一 九 八 三 年 北 京 ДАНИИЛ ГРАНИН ЗТА СТРАННАЯ ЖИЗНЬ 据 Д. ГРАНИН: ВЬІБОР ЦЕЛИ (СОВЕТСКИЙ ПИСАТЕЛЬ, ЛЕНИНГРАДСКОЕ ОТДЕЛЕНИЕ,1975) 译 出 封 面 扉 页 :

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

1 CAN 69 4 接受滤波 CAN CRC LLC 超载通知数恢复管理 CAN 据数据封装 / 拆装 5 链帧编码 ( 填充 / 解除 ) 媒体访问管理 路 CAN 应答 SAE J CAN 1 1 CAN 层 1CAN CAN 7 CAN 1 2 2CAN CAN 1 58%

1 CAN 69 4 接受滤波 CAN CRC LLC 超载通知数恢复管理 CAN 据数据封装 / 拆装 5 链帧编码 ( 填充 / 解除 ) 媒体访问管理 路 CAN 应答 SAE J CAN 1 1 CAN 层 1CAN CAN 7 CAN 1 2 2CAN CAN 1 58% 17 1 2012 2 Vol 17 No 1 JOURNAL OF HARBIN UNIVERSITY OF SCIENCE AND TECHNOLOGY Feb 2012 CAN 150080 CAN CAN CAN SAE J1939 CAN CAN CAN CAN SAE J1939 TP23 A 1007-2683201201- 0068-06 A Design Method of CAN

More information

untitled

untitled Fortran Chapter 7 Subroutine ( ) and Function 7-1 subroution 行 不 行 來 行 The general form of a subroutine is subroutine subroutine_name ( argument_list) (Declaration section) (Execution section) retrun end

More information

06-4.indd

06-4.indd 1 02 07 13 16 20 28 33 38 42 46 48 51 57 64 65 65 66 67 68 2 3 4 5 6 7 8 9 10 11 12 13 LL T : 14 LL T 15 16 扫描电子显微镜成像模拟的 MPI 及 OpenMP 并行化 17 18 19 20 21 22 ~ ~ ~ 23 24 ~ ~ ~ ~ ~ ~ ~ 25 26 27 28 29 图 3

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

PTR89 应用程序编程接口 V1.00

PTR89 应用程序编程接口 V1.00 PTR89 便携式热敏打印机 应用程序编程接口 V1.00 如有任何更改, 恕不另行通知 目录 1.0. 简介... 3 1.1. 文档范围和限制... 3 1.2. 参考... 3 2.0. 数据结构... 4 2.1. PRT_PAGE_MODE_PARAM... 4 3.0. API 函数... 5 3.1. Printer_Open... 5 3.2. Printer_Close... 5

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

ebook14-4

ebook14-4 4 TINY LL(1) First F o l l o w t o p - d o w n 3 3. 3 backtracking parser predictive parser recursive-descent parsing L L ( 1 ) LL(1) parsing L L ( 1 ) L L ( 1 ) 1 L 2 L 1 L L ( k ) k L L ( 1 ) F i r s

More information

如何在 Apache Hive 中解析 Json 数组

如何在 Apache Hive 中解析 Json 数组 问题 我们都知道,Hive 内部提供了大量的内置函数用于处理各种类型的需求, 参见官方文档 :Hive Operators and User-Defined Functions (UDFs) 我们从这些内置的 UDF 可以看到两个用于解析 Json 的函数 :get_json_object 和 json_tuple 用过这两个函数的同学肯定知道, 其职能解析最普通的 Json 字符串, 如下 : hive

More information

Microsoft Word - DCS系统的实践应用与工作经验

Microsoft Word - DCS系统的实践应用与工作经验 DCS 系 统 的 实 践 应 用 与 工 作 经 验 北 京 远 东 仪 表 有 限 公 司 张 洪 垠 摘 要 : 本 文 着 重 介 绍 了 有 关 DCS 系 统 的 选 型 配 置 使 用 与 考 核 等 方 面 要 求, 作 者 介 绍 了 多 年 从 事 DCS 的 工 作 实 践 体 会 和 感 受, 可 作 为 从 事 DCS 系 统 方 面 工 作 的 有 关 人 员 参 考 关

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

幻灯片 1

幻灯片 1 第一类换元法 ( 凑微分法 ) 学习指导 复习 : 凑微分 部分常用的凑微分 : () n d d( (4) d d( ); (5) d d(ln ); n n (6) e d d( e ); () d d( b); ); () d d( ); (7) sin d d (cos ) 常见凑微分公式 ); ( ) ( ) ( b d b f d b f ); ( ) ( ) ( n n n n d f

More information

第11章 可调内核参数

第11章 可调内核参数 11 11 Unix BSD 4.4 Linux sysctl Unix Linux /proc window /proc /proc/sys /proc/sys sysctl Unix root /proc/sys/vm root /proc/sys sysctl /proc/sys struct ctl_table 18274 struct ctl_tables /proc/sys struct

More information

untitled

untitled XP248 1 XP248 XP248 DCS PLC SCnet SCnet DCS SCnet DCS 1.1 XP248 Modbus HostLink Modbus XP248 4 DB25 XP248 MODBUS XP248 SCControl XP248 4 RS232 RS485 4 32 XP248 COM0-COM1 COM2-COM3 1200 19200bit/s 5 8 1

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20% 38 11 2013 11 GeomaticsandInformationScienceofWuhanUniversity Vol.38No.11 Nov.2013 :1671-8860(2013)11-1339-05 :A GIS Key-value 1 1 1 1 (1 129 430079) : 设计了一种基于 Key-value 结构的缓存 KV-cache 旨在简化数据结构 高效管理缓存数据

More information

2015年计算机二级(C语言)模拟试题及答案(三)

2015年计算机二级(C语言)模拟试题及答案(三) 2016 年计算机二级 (C 语言 ) 模拟试题及答案 (3) 1.( A ) 是构成 C 语言程序的基本单位 A 函数 B 过程 C 子程序 D 子例程 2.C 语言程序从 ( C ) 开始执行 A 程序中第一条可执行语句 B 程序中第一个函数 C 程序中的 main 函数 D 包含文件中的第一个函数 3 以下说法中正确的是( C ) A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中,

More information

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

Microsoft Word - 201110.doc

Microsoft Word - 201110.doc 2011 年 10 月 信 徒 交 通 月 刊 目 錄 一 本 期 目 錄 編 輯 室 1 二 牧 者 的 話 教 會 轉 化 -- 得 到 更 新 皮 袋 衣 立 凡 2 三 講 章 精 華 清 潔 的 心 思 -- 除 去 論 斷 講 員 衣 立 凡 / 賴 美 如 整 理 4 清 潔 的 心 思 -- 除 去 情 慾 講 員 葉 志 偉 / 林 慶 如 整 理 9 四 精 選 文 章 等 候

More information

e bug 0 x=0 y=5/x 0 Return 4 2

e bug 0 x=0 y=5/x 0 Return 4 2 e 1 4 1 4 4.1 4.2 4.3 4.4 4.5 e 2 4.1 bug 0 x=0 y=5/x 0 Return 4 2 e 3 4 3 e 4 (true) (false) 4 4 e 5 4 5 4.2 1 G= V E V={n1,n2,,n m } E={e1,e2,,e p } e k ={n i,n j }, n i,n j V e 6 4.2 4 6 1 e 3 n 1 e

More information