MClibリファレンス

ID関連

void setidx(int *id, int x)
ID を格納する変数id のX 値をx に更新する.
void setidy(int *id, int y)
ID を格納する変数id のY 値をy に更新する.
void setidxy(int *id, int x, int y)
id をID(x,y) に更新する.
int getidx(int id)
ID を格納する変数id のX 値を返す.
int getidy(int id)
ID を格納する変数id のY 値を返す.
int MC_get_id(int *id)
自身のID をid に格納する.
int MC_get_rank(int *rank)
メッシュサイズをid 格納する.id にはID のX 値とY 値がともに最大となるID を返す

時間

int MC_sleep(long long unsigned int n)
n サイクル経過後,関数を抜ける.
int MC_clock(long long unsigned int *clock)
動作開始から現在までの所要サイクル数を取得しclock に格納する.

初期化/終了処理

int MC_init(int *id_x, int *id_y, int *rank_x, int *rank_y)
MClibの初期化を行う. 自身のID をid_x,id_y に,メッシュサイズをrank_x, rank_y に格納する.
void MC_finalize()
MClib の終了処理を行う.

DMA転送

void MC_dma_put(int remote_id, void *remote_addr, void *local_addr, size_t size, int remote_stride, int local_stride)
自身のノードメモリから他のノードのノードメモリに対してデータを転送する. 自身のノードのアドレスlocal_addr からバイトアドレスlocal stride 飛ばしながらsize バイト読み出す. 読み出したデータをremote_id で示されるノードに対して転送し, ノードのアドレスremote_addrからバイトアドレスremote_stride飛ばしながら書き込む.
void MC_dma_put_4b(int remote_id, void *remote_addr, int data)
remote_idに4バイトのデータ(data)を転送する. そのデータはアドレスremote_addrに書き込まれる.
void MC_dma_get(int remote_id, void *remote_addr, void *local_addr, size_t size, int remote_stride, int local_stride)
他のノードのノードメモリから自身のノードメモリに対してデータを転送する. remote_idで示されるノードのノードメモリのアドレスremote_addrから バイトアドレスremote_stride飛ばしながらsizeバイト読み出す. 読み出したデータを自身のノードメモリのアドレスlocal_addrからバイトアドレス local_stride飛ばしながら書き込む.
void MC_dma_put64(int remote_id, uint064_t remote_addr, void *local_addr, size_t size, int local_stride)
自身のノードメモリからメイン メモリに対してデータを転送する. 自身のノードメモリのアドレスlocal_addrからバイトアドレス local_stride飛ばしながらsizeバイト読み出す. 読み出したデータをremote_idで示されるノードに対して転送し, メインメモリのアドレスremote_addr から連続して書き込む. メインメモリ書き込み時のストライドは4で固定とし, プログラマが指定することはできない.
void MC_dma_get64(int remote_id, uint064_t remote_addr, void *local_addr, size_t size, int local_stride)
メインメモリから自身のノードメモリに対してデータを転送する. remote idで示されるメモリモジュールのメインメモリのアドレスremote_addr から連続してsize バイト読み出す. 読み出したデータを自身のノードメモリのアドレスlocal_addrからバイトアドレス local_stride飛ばしながら書き込む. メインメモリから読み出す際のストライドは4で固定とし, プログラマが指定することはできない.

M-Coreトップ

Copyright(c) 2010, Tokyo Tech Kise Laboratory. All rights reserved.