--- trunk/paramin-beta/netcommunication.cc 2014/02/10 17:09:07 1 +++ trunk/paramin-beta/netcommunication.cc 2015/05/11 07:50:15 7 @@ -69,11 +69,11 @@ int NetCommunication::startPVM() { /* - Þetta fall er afgreitt í bili! - ATH: Þarf e.t.v. að skoða parametrana í MPI_Init. + Þetta fall er afgreitt í bili! + ATH: Þarf e.t.v. að skoða parametrana í MPI_Init. */ int info; - // Held að það sé í lagi að hafa bara NULL hér... + // Held að það sé í lagi að hafa bara NULL hér... MPI_Init(NULL, NULL); if (mytid < 0) { @@ -92,7 +92,7 @@ { printErrorMsg("Error in netcommunication - MPI_Init has not been called!"); } - // nhost á að vera 1 hérna + // nhost á að vera 1 hérna MPI_Comm_size(MPI_COMM_WORLD, &nhost); tids = new int[maxNumHosts]; @@ -109,7 +109,7 @@ int NetCommunication::startNetCommunication() { /* - Þetta fall er afgreitt í bili! + Þetta fall er afgreitt í bili! */ int i, OK, info; if (NETSTARTED == 1 && mytid >= 0) @@ -130,10 +130,10 @@ if (OK == 1) { /* - Í PVM var notað pvm_catchout(stdin) til að fá output úr - child processunum, í MPI setur maður flag á eftir mpirun - til að fá sambærilega hegðun, þá búast til skrár fyrir hvert - process sem skrifa út allt sem kemur úr stdout og stderr í þeim. + Ã� PVM var notað pvm_catchout(stdin) til að fá output úr + child processunum, í MPI setur maður flag á eftir mpirun + til að fá sambærilega hegðun, þá búast til skrár fyrir hvert + process sem skrifa út allt sem kemur úr stdout og stderr í þeim. */ MPI_Comm_spawn(slaveProgram, slaveArguments, nhost, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &intercomm, errcodes); @@ -158,7 +158,7 @@ } /* - Þýðandinn var eitthvað að kvarta hérna... + Þýðandinn var eitthvað að kvarta hérna... for (i = 0; i < nhost; i++) { @@ -206,7 +206,7 @@ void NetCommunication::stopNetCommunication() { /* - Fínt í bili. + Fínt í bili. */ int i, tid, info, numTasks; int stopparam = -1; @@ -227,7 +227,7 @@ int NetCommunication::startProcesses() { /* - Þetta fall er afgreitt í bili! + Þetta fall er afgreitt í bili! */ //Send number of variables, group name and number of processes to spawned processes int cansend = 1; @@ -274,7 +274,7 @@ } // check if process with identity = id is up and running - // spurning að sleppa þessu í bili, leyfum þessu að vera á meðan hitt er klárað. + // spurning að sleppa þessu í bili, leyfum þessu að vera á meðan hitt er klárað. OK = checkProcess(id); if (OK == 1) { @@ -314,8 +314,8 @@ int NetCommunication::checkProcess(int id) { /* - Þetta fall er ekki að gera neitt, því það sendir adrei nein - út með tagginu getTaskDiedTag() + Þetta fall er ekki að gera neitt, því það sendir adrei nein + út með tagginu getTaskDiedTag() */ int info, bufID, recvTid, flag; MPI_Status stats, recvstats; @@ -327,10 +327,10 @@ // Non-blocking probe which checks for a message with this tag, if there is no message then // flag is false, otherwise it is true, then something is maybe wrong with the process! - // ATH: Þetta flag mun líklega alltaf vera false... það tékkar bara strax og heldur svo - // áfram, þetta virkar eins og pvm_probe, svo þetta ætti að vera í lagi hér. - // Held samt að það sé irrelevant að vera með þetta checkprocess núna, það á allt að - // vera í lagi... + // ATH: Þetta flag mun líklega alltaf vera false... það tékkar bara strax og heldur svo + // áfram, þetta virkar eins og pvm_probe, svo þetta ætti að vera í lagi hér. + // Held samt að það sé irrelevant að vera með þetta checkprocess núna, það á allt að + // vera í lagi... bufID = MPI_Iprobe(id, pvmConst->getTaskDiedTag(), intercomm, &flag, &stats); if (flag == true) { // message has arrived from tids[id] that has halted @@ -366,8 +366,8 @@ void NetCommunication::checkProcesses() { /* - Þetta fall er komið í bili. - Þetta fall erl íka í raun óþarfi... + Þetta fall er komið í bili. + Þetta fall erl íka í raun óþarfi... */ int i, info, tidDown, flag; MPI_Request req; @@ -390,7 +390,7 @@ void NetCommunication::getHealthOfProcesses(int* procTids) { /* - Þetta fall er afgreitt. + Þetta fall er afgreitt. */ checkProcesses(); @@ -404,12 +404,12 @@ // ******************************************************** int NetCommunication::sendData(const ParameterVector& sendP) { /* - Komið í bili, þarf samt að skoða MPI_PACK eða eitthvað álíka til að - raða inn í buffer og senda strengina, gæti verið að maður þurfi þá að - pakka int með sem er lengd char fylkisins. Það er samt bara kallað á þetta - fall einu sinni í byrjun til að senda switches, svo að það ætti að vera í lagi. + Komið í bili, þarf samt að skoða MPI_PACK eða eitthvað álíka til að + raða inn í buffer og senda strengina, gæti verið að maður þurfi þá að + pakka int með sem er lengd char fylkisins. Það er samt bara kallað á þetta + fall einu sinni í byrjun til að senda switches, svo að það ætti að vera í lagi. !!! ATH !!! - Passa að allir sem kalla á þetta sendi communicator !!! + Passa að allir sem kalla á þetta sendi communicator !!! !!! */ // must absolutely check if this is possible or can not delete @@ -425,7 +425,7 @@ // broadcasting the data via a tree structure, this should not create too much overhead. for(int j = 0; jgetMasterSendStringTag(), intercomm); + MPI_Send(stringValue[i],strlen(stringValue[i])+1, MPI_CHAR, j, pvmConst->getMasterSendStringTag(), intercomm); } }; assert(sendP.Size() >= numVar); @@ -448,7 +448,7 @@ int NetCommunication::sendData(const ParameterVector& sendP, int processID) { /* - Búið í bili... + Búið í bili... */ int i, info; char** stringValue; @@ -462,7 +462,7 @@ // This could be causing some overhead, could consider packing it in a buffer // before I send it, like the old pvm version, let's see if this works ok. // I think this function is only called once. - MPI_Send(stringValue[i],strlen(stringValue[i]), MPI_BYTE,tids[processID],pvmConst->getMasterSendStringTag(),intercomm); + MPI_Send(stringValue[i],strlen(stringValue[i])+1, MPI_CHAR,tids[processID],pvmConst->getMasterSendStringTag(),intercomm); }; assert(sendP.Size() >= numVar); @@ -481,7 +481,7 @@ int NetCommunication::sendBoundData(const DoubleVector& sendP) { /* - Komið í bili... + Komið í bili... */ int i, info; double* temp; @@ -509,7 +509,7 @@ int NetCommunication::sendBoundData(const DoubleVector& sendP, int processID) { /* - Komið í bili! + Komið í bili! */ int i, info; double* temp; @@ -534,7 +534,7 @@ int NetCommunication::sendData(NetDataVariables* sendP, int processID) { /* - Komið í bili! + Komið í bili! */ int info; int cansend = 1; @@ -583,8 +583,8 @@ int NetCommunication::receiveData(NetDataResult* rp) { /* - Komið í bili... - Þarf að passa að kasta villu ef einhver af þessum nær ekki að receive-a, nota kannski + Komið í bili... + Þarf að passa að kasta villu ef einhver af þessum nær ekki að receive-a, nota kannski MPI_Probe... */ int info; @@ -596,7 +596,7 @@ MPI_Recv(&rp->result, 1, MPI_DOUBLE, status.MPI_SOURCE, pvmConst->getMasterReceiveDataTag(), intercomm, &status2); MPI_Recv(&rp->who, 1, MPI_INT, status.MPI_SOURCE, pvmConst->getMasterReceiveDataTag(), intercomm, &status2); MPI_Recv(&rp->x_id, 1, MPI_INT, status.MPI_SOURCE, pvmConst->getMasterReceiveDataTag(), intercomm, &status2); - cout << "Skrifa result úr netcomm: " << rp->result << "\n"; + cout << "Skrifa result úr netcomm: " << rp->result << "\n"; return SUCCESS; } else @@ -647,12 +647,12 @@ void NetCommunication::printErrorMsg(const char* errorMsg) { /* - Eina fallið sem ég virðist þurfa að eiga eitthvað við hér... + Eina fallið sem ég virðist þurfa að eiga eitthvað við hér... */ char* msg; msg = new char[strlen(errorMsg) + 1]; strcpy(msg, errorMsg); - // Ákvað að gera þetta svona, vona að þetta flood-i ekki command line... + // Ã�kvað að gera þetta svona, vona að þetta flood-i ekki command line... cout << msg << "\n"; delete[] msg; cerr << errorMsg << endl; @@ -693,9 +693,9 @@ int MasterCommunication::receiveData(NetDataResult* rp) { /* - Komið í bili... - Þarf að passa að kasta villu ef einhver af þessum nær ekki að receive-a, nota kannski - MPI_Probe, þetta var gert með Timeout receive í gömlu útgáfunni... + Komið í bili... + Þarf að passa að kasta villu ef einhver af þessum nær ekki að receive-a, nota kannski + MPI_Probe, þetta var gert með Timeout receive í gömlu útgáfunni... */ int info; MPI_Status status, status2; @@ -713,4 +713,4 @@ printErrorMsg("Error in netcommunication - unable to receive data"); return ERROR; } -} \ No newline at end of file +}