Advertisement
malgoska

Untitled

Mar 23rd, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. master.c
  2. #include "def.h"
  3.  
  4. main()
  5. {
  6. int mytid, inst;
  7. int tids[SLAVENUM]; /* slave task ids */
  8. char slave_name[NAMESIZE];
  9. int nproc, i, who;
  10.  
  11. mytid = pvm_mytid();
  12.  
  13. inst = pvm_joingroup(GRPNAME);
  14.  
  15. nproc=pvm_spawn(SLAVENAME, NULL, PvmTaskDefault, "", SLAVENUM, tids);
  16.  
  17.  
  18.  
  19. pvm_barrier(GRPNAME, SLAVENUM + 1);
  20.  
  21. pvm_initsend(PvmDataDefault);
  22. pvm_pkint(&mytid, 1, 1);
  23. /*pvm_pkint(&i, 1, 1);*/
  24. pvm_bcast(GRPNAME, MSG_MSTR);
  25.  
  26. /*for( i=0 ; i<nproc ; i++ )
  27. {
  28. pvm_initsend(PvmDataDefault);
  29. pvm_pkint(&mytid, 1, 1);
  30. pvm_pkint(&i, 1, 1);
  31. pvm_send(tids[i], MSG_MSTR);
  32. }*/
  33.  
  34. for( i=0 ; i<nproc ; i++ )
  35. {
  36. pvm_recv( -1, MSG_SLV );
  37. pvm_upkint(&who, 1, 1 );
  38. pvm_upkstr(slave_name );
  39. printf("%d: %s\n",who, slave_name);
  40. }
  41.  
  42. pvm_exit();
  43. }
  44.  
  45. slave.c
  46. #include "def.h"
  47. #include <unistd.h>
  48.  
  49. main()
  50. {
  51. int mytid;
  52. //int tids[SLAVENUM]; /* slave task ids */
  53. char slave_name[NAMESIZE];
  54. int nproc, i, who, nr;
  55.  
  56. mytid = pvm_mytid();
  57.  
  58. int inst = pvm_joingroup(GRPNAME);
  59.  
  60. pvm_barrier(GRPNAME, SLAVENUM + 1);
  61.  
  62. pvm_recv( -1, MSG_MSTR);
  63. pvm_upkint(&who, 1, 1 );
  64. /*pvm_upkint(&nr, 1, 1);*/
  65.  
  66. pvm_initsend(PvmDataDefault);
  67. pvm_pkint(&inst, 1, 1);
  68.  
  69. gethostname(slave_name, sizeof(slave_name));
  70.  
  71. pvm_pkstr(slave_name);
  72. pvm_send(who, MSG_SLV);
  73.  
  74. pvm_exit();
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement