Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] sndlib problem by mpicc compiler
From: Pawe³ Jaromin (jaromin.pawel_at_[hidden])
Date: 2012-07-30 06:11:37


Thanks for fast answer, but the problem looks a little different.

Of course, I use this code only for master node (rank 0), because only
this node has an access to file.

As You can see i use "if" clause to check sndFile for NULL:

if (sndFile == NULL)

and it returns not NULL value, so the code can run forward.
I have found the problem during check array:

                           long numFrames = sf_readf_float(sndFile, snd_buffor, sfinfo.frames);

                           // Check correct number of samples loaded
                           if (numFrames != sfinfo.frames) {
                              fprintf(stderr, "Did not read enough frames for source\n");
                              return 1;

So, after that I went to debuger to check variables (I use Eclipse PTP
and sdm enviroment), then after inicjalization variable "sndFile" has
"no value" not "NULL" . Unfortunatelly sndFile has still the same
value to the end of program :(.
                FILE *outfile = NULL ;
                SF_INFO sfinfo ;
                SNDFILE *sndFile= NULL;

Very interesting is , that "sfinfo" from the same library works perfect.
At the end of this story, I modified the program without MPI , then
compiled it by gcc (not mpicc) and it works fine (in debuger sndFile
has proper value).

I hope, now is clear.

2012/7/30 TERRY DONTJE <terry.dontje_at_[hidden]>:
> I am not sure I am understanding the problem correctly so let me describe it
> back to you with a couple clarifications.
> So your program using sf_open compiles successfully when using gcc and
> mpicc. However, when you run the executable compiled using mpicc sndFile is
> null?
> If the above is right can you tell us how you ran the code?
> Will the code run ok if ran with "mpirun -np 1" on the same machine you run
> the gcc code normally?
> When the mpicc compiled code sf_open call returns NULL what does the
> successive sf_strerror report?
> My wild guess is when you run the mpicc compiled code one of the processes
> is on a node that doesn't have access to the file passed to sf_open.
> --td
> On 7/28/2012 1:08 PM, Pawe³ Jaromin wrote:
> Hello all
> Because I try make a program to parallel procesing sound files, I use
> libsndfile library to load and write wav files. Sytuation is strange,
> because when I compile the program by gcc is good (no parallel), but
> if I do it by mpicc is a problem with sndFile variable.
> // Open sound file
> SF_INFO sndInfo;
> SNDFILE *sndFile = sf_open(argv[1], SFM_READ, &sndInfo);
> if (sndFile == NULL) {
> fprintf(stderr, "Error reading source file '%s': %s\n", argv[1],
> sf_strerror(sndFile));
> return 1;
> }
> This code run witout an error, but variable is "No value"
> Maybe somone can help me ??
> --
> Terry D. Dontje | Principal Software Engineer
> Developer Tools Engineering | +1.781.442.2631
> Oracle - Performance Technologies
> 95 Network Drive, Burlington, MA 01803
> Email terry.dontje_at_[hidden]
> _______________________________________________
> users mailing list
> users_at_[hidden]

Pawe³ Jaromin