20 likes | 95 Views
OSI7 層の各層の 1) 名称 2) 機能の簡単な説明 3) 各階層に関連のある機器 、規格など を 5 つ以上書いて下さい。 導線 、光ファイバ、無線上を bit 信号はどのように伝搬するか説明して下さい。 CSMA/CD と CSMA/CA の機能、相違点を説明して下さい。 イーサネット 、 IP 、 TCP/IP で使用される識別子を示し、送信者は相手の識別子 をどの ようにして得ることができるか説明して下さい。 TCP と UDP プログラムで、イーサネットフレームよりも大きなパケット を扱う 時に注意すべき点を記して下さい。.
E N D
OSI7層の各層の1)名称 2)機能の簡単な説明 3)各階層に関連のある機器、規格などを5つ以上書いて下さい。 • 導線、光ファイバ、無線上を bit 信号はどのように伝搬するか説明して下さい。 • CSMA/CD と CSMA/CA の機能、相違点を説明して下さい。 • イーサネット、IP、TCP/IP で使用される識別子を示し、送信者は相手の識別子をどのようにして得ることができるか説明して下さい。 • TCP と UDP プログラムで、イーサネットフレームよりも大きなパケットを扱う時に注意すべき点を記して下さい。
各 MPI関数の定義: intMPI_Comm_rank(MPI_Commcomm, int *rank); comm: コミュニケータ rank: 呼び出したプロセスのランクを格納する変数へのポインタ intMPI_Comm_size(MPI_Commcomm, int *size); comm: コミュニケータ size: コミュニケータ中のプロセス数を格納する変数へのポインタ intMPI_Send(void *b, int c, MPI_Datatype d, intdest, int t, MPI_Commcomm); b: 送信データの開始アドレス c: 送信データの要素数 d: 送信データのデータ型 (MPI_INT: 整数、MPI_CHAR: 文字列) dest: 送信先プロセスのランク t: タグ comm: コミュニケータ intMPI_Recv(void *b, int c, MPI_Datatype d, intsrc, int t, MPI_Commcomm, MPI_Status *st); b: 受信データを格納する場所の開始アドレス c: 受信データの要素数 d: 受信データのデータ型 (MPI_INT: 整数、MPI_CHAR: 文字列) dest: 受信元プロセスのランク t: タグ comm: コミュニケータ st: 受信したメッセージの情報を格納する配列 intmy_reduce(int *a, int *b, int c) { inti, p, myid, procs; int *t; MPI_Statusst; MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &procs); if (myid == 0){ t = (int *)malloc(c*sizeof(int)); if (t == NULL) return -1; MPI_Recv(t, c, MPI_INT, 1, 0, MPI_COMM_WORLD, &st); for (i = 0; i < N; i++) b[i] = a[i] + t[i]; for (p = 2; p < procs; p++){ MPI_Recv(t, c, MPI_INT, p, 0, MPI_COMM_WORLD, &st); for (i = 0; i < N; i++) b[i] += t[i]; } } else{ MPI_Send(a, c, MPI_INT, 0, 0, MPI_COMM_WORLD); } return 0; } • 現在使用されているスーパーコンピュータが全て分散メモリ型となっている理由を説明して下さい。 • 秘密鍵と公開鍵を用いて、通信内容が途中で不正に書き換えられていないことを保証する手順を説明して下さい。 • 分散メモリ型並列計算機で用いられるインターコネクトトポロジを 2つ以上あげて、それぞれの特徴を説明して下さい。 • MPI(Message Passing Interface)の集団通信について説明するとともに、集団通信の利用にあたって注意すべき点を記して下さい。 • 例を参考にして、MPI関数を使ってプロセス 0が持つデータを、 他の全プロセスにコピーする集団通信の関数 my_bcastを作成して下さい。 • my_bcast関数の定義は以下の通りとします。 • intmy_bcast(char *buf, int size); • ただし、bufは、プロセス0ではコピー元のデータを格納している場所へのポインタ、れ以外のプロセスではコピーするデータを格納する場所へのポインタとし、size は転送するバイト数とします。また、返り値は、成功した場合 0、失敗した場合 -1とします。 なお、アルゴリズムが正しければ、細かい文法的な間違いは減点の対象としません。 プロセスの整数ベクトルの総和を計算するmy_reduce関数の例)