#define Matrix_Size 8 //矩陣大小
/*
float g_fMatrixValue[8][8]
*/
float fNodeValue = g_fMatrixValue[y][x];
float fNorthVal, fWestVal;
int iTemp;
for(iTemp=0; iTemp < Matrix_Size; iTemp++){
if ( y == iTemp && x == iTemp) {
fNodeValue = sqrt(fNodeValue);
g_fMatrixValue[y][x]=fNodeValue;
if (y < Matrix_Size-1 ) {
send(nProc_id, matrix[y+1][x], fNodeValue);
}
if (x < Matrix_Size-1) {
send(nProc_id, matrix[y][x+1], fNodeValue);
}
}//===Step(1) End ===
//===Step(2)===
else if ( y > iTemp && x == iTemp) {
fNorthVal = receive(nProc_id, matrix[y-1][x]);
fNodeValue = fNodeValue/fNorthVal;
g_fMatrixValue[y][x]=fNodeValue;
if (y < Matrix_Size-1 ) {
send(nProc_id, matrix[y+1][x], fNorthVal);
}
if (x < Matrix_Size-1 ) {
send(nProc_id, matrix[y][x+1], fNodeValue);
}
}//===Step(2) End ===
//===Step(3)===
else if ( y == iTemp && x > iTemp) {
fWestVal = receive(nProc_id, matrix[y][x-1]);
fNodeValue = fNodeValue/fWestVal;
g_fMatrixValue[y][x]=fNodeValue;
if (x < Matrix_Size-1 ) {
send(nProc_id, matrix[y][x+1], fWestVal);)
}
if (y < Matrix_Size-1 ) {
send(nProc_id, matrix[y+1][x], fNodeValue);
}
}//===Step(3) End ===
//===Step(4)===
else if ( x > iTemp && y > iTemp ){
fNorthVal = receive(nProc_id, matrix[y-1][x]);
fWestVal = receive(nProc_id, matrix[y][x-1]);
fNodeValue = fNodeValue - fNorthVal*fWestVal;
g_fMatrixValue[y][x]=fNodeValue;
if (y < Matrix_Size-1 ) {
send(nProc_id, matrix[y+1][x], fNorthVal);
}
if (x < Matrix_Size-1 ) {
send(nProc_id, matrix[y][x+1], fWestVal);
}
}//===Step(4) End ===
}
這邊只有部分程式代碼
程式可以跑沒有錯誤
只是想問有沒有優化程式碼的方法??或可以加快程式效率的方法??
謝謝