Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.


Chuck37
Posts:
95
Registered:
2/23/10


Re: Confusing spmd error
Posted:
Jan 9, 2013 9:59 AM


Thanks, I'll give these idea a shot. It'll take a little doing since things are actually a little more complex than the example below.
From my print statement debugging so far, it appears that inside the function a structure is copied and somehow some of the values simply don't copy and have NaNs in their place. This is only the case inside spmd. I'll post back if I figure something out.
Edric M Ellis <eellis@mathworks.com> wrote in message <ytw6236zq03.fsf@ukeellis0l.dhcp.mathworks.com>... > "Chuck37 " <chuck3737@yahooremovethis.com> writes: > > > I have a function that is giving me an error when called within spmd > > but I can't repeat it outside. e.g: > > > > x = <something>; > > spmd > > if labindex == 1 > > y = <something> > > z = function(x,y); > > end > > end > > > > Gives me an error inside the function, but when I try to debug like this: > > > > z = function(x,y{1}) > > > > It runs through just fine. This makes debugging very difficult. > > Anyone have any idea of what would cause it not to run exactly the > > same way in each case? > > > > The error is nothing parallel related by the way, it's actually a > > singular matrix warning. > > Hmm, that's very strange. Do you still get the warning if you simply do > > x = <something>; > y = <something>; > z = function(x,y); > > How about if you do > > matlabpool open 1 > spmd > x = <something>; > y = <something>; > z = function(x,y); > end > > matlabpool close > spmd > x = <something>; > y = <something>; > z = function(x,y); > end > > One other thing that has an outside chance of making a difference is > that matlabpool workers are run in single computational thread mode, > which means some algorithms will work slightly differently. You could > try launching your desktop matlab with the "singleCompThread" switch to > see if that makes any difference. > > Cheers, > > Edric.



