diff --git a/matlab/parallel/distributeJobs.m b/matlab/parallel/distributeJobs.m index 9a16c733d..3f6b60356 100644 --- a/matlab/parallel/distributeJobs.m +++ b/matlab/parallel/distributeJobs.m @@ -145,7 +145,7 @@ for i=1:nC % Many choices are possible: % - ... (see above). - JobAssignedCpu=floor(JobsForNode(i)/nCPUoriginal(i)); + JobAssignedCpu=max(1,floor(JobsForNode(i)/nCPUoriginal(i))); ChekOverFlow=0; diff --git a/matlab/parallel/dynareParallelDeleteNewFiles.m b/matlab/parallel/dynareParallelDeleteNewFiles.m new file mode 100644 index 000000000..266ae1950 --- /dev/null +++ b/matlab/parallel/dynareParallelDeleteNewFiles.m @@ -0,0 +1,74 @@ +function dynareParallelDeleteNewFiles(PRCDir,Parallel,PRCDirSnapshot) +% PARALLEL CONTEXT +% In a parallel context, this is a specialized function able to ... +% +% +% INPUTS +% +% o PRCDir [] ... +% o Parallel [] ... +% o PRCDirSnapshot [] ... +% +% +% OUTPUTS +% o PRCDirSnapshot [] ... +% +% +% +% Copyright (C) 2009-2011 Dynare Team +% +% This file is part of Dynare. +% +% Dynare is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% Dynare is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with Dynare. If not, see . + +NewFilesFromSlaves={}; + +% try +for indPC=1:length(Parallel), + + if Parallel(indPC).Local==0; + [NewFilesFromSlaves, PRCDirSnapshot{indPC}]=dynareParallelFindNewFiles(PRCDirSnapshot{indPC},Parallel(indPC), PRCDir); + if ~ispc || strcmpi('unix',Parallel(indPC).OperatingSystem), + fS='/'; + else + fS='\'; + end + + if ~isempty(NewFilesFromSlaves) + + for i=1:length(NewFilesFromSlaves) + SlashNumberAndPosition=[]; + PRCDirPosition=findstr(NewFilesFromSlaves{i}, ([PRCDir])); + sT=NewFilesFromSlaves{i}; + sT(1:(PRCDirPosition+length([PRCDir]))-2)=[]; + sT(1)='.'; + SlashNumberAndPosition=findstr(sT,fS); + fileaddress={sT(1:SlashNumberAndPosition(end)),sT(SlashNumberAndPosition(end)+1:end)}; + dynareParallelDelete(fileaddress{2},[PRCDir,fS,fileaddress{1}],Parallel(indPC)); + + display('New file deleted in remote -->'); + display(fileaddress{2}); + display('<--'); + + end + else + continue + end + + + end +end + + +