[Beowulf] Stupid MPI programming question
Mark Hahn
hahn at physics.mcmaster.ca
Wed Sep 27 21:14:05 PDT 2006
> Ok, here is the code I'm working with....mkdir keeps giving me a -1 failure...can anyone spot what I"m doing wrong?
why not simply look at errno when you receive the error?
> #define TRUE 1
> #define FALSE 0
> #define BOOLEAN int
> int main( argc, argv )
> int argc;
> char* argv [];
using K&R-style parameters is extremely bad practice.
> {
> int my_rank, i,pool_size;
> BOOLEAN i_am_the_master = FALSE;
personally, I find this bad practice, as well. the two assignments
to i_am_the_master are separated, and don't offer much, if any,
greater support to the reader of the code than just "rank==MASTER".
> // SLAVE CODE (THIS IS WHERE THE MAGIC HAPPENS
> if (!i_am_the_master)
> {
> char fullpath[10000];
technically, you should use PATH_MAX for this.
> sprintf(fullpath,"/tmp/oooo/RANK%d", my_rank);
snprintf is more robust.
> int mkdir_return;
> mkdir_return = mkdir(fullpath,0777);
> printf("mkdir results: %d\n", mkdir_return);
the idiom should be:
if (mkdir(fullpath,077) == -1)
fprintf(stderr,"mkdir failed: %d",errno);
but do you ensure that /tmp/oooo already exists before you try to make
the rank-specific subdirectory?
More information about the Beowulf
mailing list