X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2abf25f94d9a3fd19a5d85637d6758932be8b047..e045b97cdfe87a1f96a92fd26122fa4675667513:/examples/cxx/comm_time/Master.cxx?ds=sidebyside diff --git a/examples/cxx/comm_time/Master.cxx b/examples/cxx/comm_time/Master.cxx index 7ab27b6c5c..6eee1bb3c5 100644 --- a/examples/cxx/comm_time/Master.cxx +++ b/examples/cxx/comm_time/Master.cxx @@ -1,89 +1,83 @@ -#include "Master.hpp" -#include "CommTimeTask.hpp" -#include "FinalizeTask.hpp" -#include -#include -#include - -#include -using namespace std; - - -#ifndef BUFFMAX -#define BUFFMAX 260 -#endif - -MSG_IMPLEMENT_DYNAMIC(Master, Process); - -int Master::main(int argc, char** argv) -{ - int channel = 0; - char buff[BUFFMAX + 1] = {0}; - int numberOfTasks; - double taskComputeSize; - double taskCommunicateSize; - - if (argc < 3) - { - cerr <<"Master needs 3 arguments" << endl; - exit(1); - } - - cout << "Hello I'm " << getName() << " on " << getHost().getName() << "!" << endl; - - int slaveCount = 0; - Host* slaves = NULL; - - sscanf(argv[0],"%d", &numberOfTasks); - - sscanf(argv[1],"%lg", &taskComputeSize); - - sscanf(argv[2],"%lg", &taskCommunicateSize); - - - slaveCount = argc - 3; - slaves = new Host[slaveCount]; - - for(int i = 3; i < argc ; i++) - { - try - { - slaves[i-3] = Host::getByName(argv[i]); - } - - catch(HostNotFoundException e) - { - cerr << e.toString() <<". Stopping Now!" << endl; - exit(1); - } - } - - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Got slave(s) :" << slaveCount << endl; - - for (int i = 0; i < slaveCount; i++) - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "\t" << slaves[i].getName() << endl; - - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Got " << numberOfTasks << " task to process." << endl; - - - for (int i = 0; i < numberOfTasks; i++) - { - sprintf(buff,"Task_%d",i); - CommTimeTask* task = new CommTimeTask(buff, taskComputeSize, taskCommunicateSize); - task->setTime(getClock()); - slaves[i % slaveCount].put(0, task); - memset(buff, 0 , BUFFMAX + 1); - } - - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "All tasks have been dispatched. Let's tell everybody the computation is over." << endl; - - for (int i = 0; i < slaveCount; i++) - { - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Finalize host " << slaves[i].getName() << " [" << i << "]" << endl; - slaves[i].put(0, new FinalizeTask()); - } - - cout <<"[" << getName() << ":" << getHost().getName() << "] " << "All finalize messages have been dispatched. Goodbye now!" << endl; - - return 0; -} \ No newline at end of file +#include "Master.hpp" +#include "CommTimeTask.hpp" +#include "FinalizeTask.hpp" +#include +#include +#include + +#include + +MSG_IMPLEMENT_DYNAMIC(Master, Process) + +int Master::main(int argc, char** argv) +{ + int numberOfTasks; + double taskComputeSize; + double taskCommunicateSize; + + if (argc < 3) + { + error("Master needs 3 arguments"); + exit(1); + } + + info("Hello"); + + int slaveCount = 0; + Host* slaves = NULL; + + sscanf(argv[0],"%d", &numberOfTasks); + + sscanf(argv[1],"%lg", &taskComputeSize); + + sscanf(argv[2],"%lg", &taskCommunicateSize); + + + slaveCount = argc - 3; + slaves = new Host[slaveCount]; + + for(int i = 3; i < argc ; i++) + { + try + { + slaves[i-3] = Host::getByName(argv[i]); + } + + catch(HostNotFoundException e) + { + error(TEXT_(e.toString()) + TEXT_(". Stopping Now!")); + exit(1); + } + } + + info(TEXT_("Got slave(s) :" ) + TEXT_(slaveCount)); + + for (int i = 0; i < slaveCount; i++) + info(TEXT_("\t") + TEXT_(slaves[i].getName())); + + info(TEXT_("Got ") + TEXT_(numberOfTasks) + TEXT_(" task to process.")); + + + for (int i = 0; i < numberOfTasks; i++) + { + CommTimeTask* task = new CommTimeTask(TEXT_("Task_") + TEXT_(i), taskComputeSize, taskCommunicateSize); + task->setTime(getClock()); + slaves[i % slaveCount].put(0, task); + + } + + info("All tasks have been dispatched. Let's tell everybody the computation is over."); + + for (int i = 0; i < slaveCount; i++) + { + info(TEXT_("Finalize host ") + TEXT_(slaves[i].getName()) + TEXT_(" [") + TEXT_(i) + TEXT_("]")); + slaves[i].put(0, new FinalizeTask()); + } + + info("All finalize messages have been dispatched. Goodbye now!"); + + + delete[] slaves; + delete this; + return 0; +}