亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? startmulticoreslave.m

?? Multicore - Parallel Processing on Multiple Cores
?? M
字號:
function startmulticoreslave(multicoreDir)
%STARTMULTICORESLAVE  Start multi-core processing slave process.
%   STARTMULTICORESLAVE(DIRNAME) starts a slave process for function
%   STARTMULTICOREMASTER. The given directory DIRNAME is checked for data
%   files including which function to run and which parameters to use.
%
%   STARTMULTICORESLAVE (without input arguments) uses the directory
%   <TEMPDIR>/multicorefiles, where <TEMPDIR> is the directory returned by
%   function tempdir.
%
%		Markus Buehren
%		Last modified 09.03.2009
%
%   See also STARTMULTICOREMASTER.

debugMode = 0;
warnMode  = 0;
errorMode = 0;
showFileAccessWarnings = 0;

if debugMode
  % activate all messages
  warnMode  = 1;
  errorMode = 1;
  showFileAccessWarnings = 1;
end

% parameters
firstWarnTime = 10;
startWarnTime = 10*60;
maxWarnTime   = 24*3600;
startWaitTime = 0.5;
maxWaitTime   = 5;

if debugMode
  firstWarnTime = 10;
  startWarnTime = 10;
  maxWarnTime   = 60;
  maxWaitTime   = 1;
end

% get slave file directory name
if ~exist('multicoreDir', 'var') || isempty(multicoreDir)
  multicoreDir = fullfile(tempdir2, 'multicorefiles');
end
if ~exist(multicoreDir, 'dir')
  try
    mkdir(multicoreDir);
  catch
    error('Unable to create slave file directory %s.', multicoreDir);
  end
end

% initialize variables
lastEvalEndClock = clock;
lastWarnClock    = clock;
firstRun         = true;
curWarnTime      = firstWarnTime;
curWaitTime      = startWaitTime;

while 1
  parameterFileList = findfiles(multicoreDir, 'parameters_*.mat', 'nonrecursive');

  % get last file that is not a semaphore file
  parameterFileName = '';
  for fileNr = length(parameterFileList):-1:1
    if isempty(strfind(parameterFileList{fileNr}, 'semaphore'))
      parameterFileName = parameterFileList{fileNr};
      break
    end
  end

  if ~isempty(parameterFileName)
    if debugMode
      % get parameter file number
      fileNr = str2double(regexptokens(parameterFileName,'parameters_\d+_(\d+)\.mat'));
      disp(sprintf('****** Slave is checking file nr %d *******', fileNr));
      %disp(sprintf('(%s)', parameterFileName));
    end

    % load and delete last parameter file
    sem = setfilesemaphore(parameterFileName);
    loadSuccessful = true;
    if existfile(parameterFileName)
      % try to load the parameters
      lastwarn('');
			lasterror('reset');
      try
        load(parameterFileName, 'functionHandles', 'parameters'); %% file access %%
      catch
        loadSuccessful = false;
        if showFileAccessWarnings
          disp(sprintf('Warning: Unable to load parameter file %s.', parameterFileName));
          if warnMode
            lastMsg = lastwarn;
            if ~isempty(lastMsg)
              disp(sprintf('Warning message issued when trying to load:\n%s', lastMsg));
            end
          end
          if errorMode
            displayerrorstruct;
          end
        end
      end
      
      % check if variables to load are existing
      if loadSuccessful && (~exist('functionHandles', 'var') || ~exist('parameters', 'var'))
        loadSuccessful = false;
        if showFileAccessWarnings
          disp(sprintf('Warning: Either variable ''%s'' or ''%s'' or ''%s'' not existing after loading file %s.', ...
            'functionHandles', 'parameters', parameterFileName));
        end
      end
      
      % remove parameter file
      deleteSuccessful = mbdelete(parameterFileName); %% file access %%
      if ~deleteSuccessful
        % If deletion is not successful it can happen that other slaves or
        % the master also use these parameters. To avoid this, ignore the
        % loaded parameters
        loadSuccessful = false;
        if debugMode
          disp(sprintf('Problems deleting parameter file nr %d.', fileNr));
        end
      end
    else
      loadSuccessful = false;
    end
    
    % remove semaphore and continue if loading was not successful
    if ~loadSuccessful
      removefilesemaphore(sem);
      continue
    end

    if debugMode
      disp(sprintf('Successfully loaded parameter file nr %d.', fileNr));
    end

    % Generate a temporary file which shows when the slave started working.
    % Using this file, the master can decide if the job timed out.
    % Still using the semaphore of the parameter file above.
    workingFile = strrep(parameterFileName, 'parameters', 'working');
    generateemptyfile(workingFile);
    if debugMode
      disp(sprintf('Working file nr %d generated.', fileNr));
    end
    
    % remove semaphore file
    removefilesemaphore(sem);

    % show info
    if firstRun
      disp(sprintf('First function evaluation (%s)', datestr(clock, 'mmm dd, HH:MM')));
      firstRun = false;
    elseif etime(clock, lastEvalEndClock) > 60
      disp(sprintf('First function evaluation after %s (%s)', ...
        formattime(etime(clock, lastEvalEndClock)), datestr(clock, 'mmm dd, HH:MM')));
    end

    %%%%%%%%%%%%%%%%%%%%%
    % evaluate function %
    %%%%%%%%%%%%%%%%%%%%%
    if debugMode
      disp(sprintf('Slave evaluates job nr %d.', fileNr));
      t0 = mbtime;
    end
    result = cell(size(parameters)); %#ok
    for k=1:numel(parameters)
      if iscell(parameters{k})
        result{k} = feval(functionHandles{k}, parameters{k}{:}); %#ok
      else
        result{k} = feval(functionHandles{k}, parameters{k}); %#ok
      end
    end
    if debugMode
      disp(sprintf('Slave finished job nr %d in %.2f seconds.', fileNr, mbtime - t0));
    end

    % Save result. Use file semaphore of the parameter file to reduce the
    % overhead.
    sem = setfilesemaphore(parameterFileName);
    resultFileName = strrep(parameterFileName, 'parameters', 'result');
    try
      save(resultFileName, 'result'); %% file access %%
      if debugMode
        disp(sprintf('Result file nr %d generated.', fileNr));
      end
    catch
      if showFileAccessWarnings
        disp(sprintf('Warning: Unable to save file %s.', resultFileName));
        if errorMode
          displayerrorstruct;
        end
      end
    end
    
    % remove working file
    mbdelete(workingFile, showFileAccessWarnings); %% file access %%
    if debugMode
      disp(sprintf('Working file nr %d deleted.', fileNr));
    end
    
    % remove parameter file (might have been re-generated again by master)
    mbdelete(parameterFileName, showFileAccessWarnings); %% file access %%
    if debugMode
      disp(sprintf('Parameter file nr %d deleted (again).', fileNr));
    end
    
    removefilesemaphore(sem);
    
    % save time
    lastEvalEndClock = clock;
    curWarnTime = startWarnTime;
    curWaitTime = startWaitTime;

    % remove variables before next run
    clear result functionHandle parameters

  else
    % display message if idle for long time
    timeSinceLastEvaluation = etime(clock, lastEvalEndClock);
    if min(timeSinceLastEvaluation, etime(clock, lastWarnClock)) > curWarnTime
      if timeSinceLastEvaluation >= 10*60
        % round to minutes
        timeSinceLastEvaluation = 60 * round(timeSinceLastEvaluation / 60);
      end
      disp(sprintf('Warning: No slave files found during last %s (%s).', formattime(timeSinceLastEvaluation), datestr(clock, 'mmm dd, HH:MM')));
      lastWarnClock = clock;
      if firstRun
        curWarnTime = startWarnTime;
      else
        curWarnTime = min(curWarnTime * 2, maxWarnTime);
      end
      curWaitTime = min(curWaitTime + 0.5, maxWaitTime);
    end

    % wait before next check
    pause(curWaitTime);

  end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function timeString = formattime(time, mode)
%FORMATTIME  Return formatted time string.
%   STR = FORMATTIME(TIME) returns a formatted time string for the given
%   time difference TIME in seconds, i.e. '1 hour and 5 minutes' for TIME =
%   3900.
%
%   FORMATTIME(TIME, MODE) uses the specified display mode ('long' or
%   'short'). Default is long display.
%
%   FORMATTIME (without input arguments) shows examples.

if nargin == 0
  disp(sprintf('\nExamples for strings returned by function %s.m:', mfilename));
  time = [0 1e-4 0.1 1 1.1 2 60 61 62 120 121 122 3600 3660 3720 7200 7260 7320 ...
    3600*24 3600*25 3600*26 3600*48 3600*49 3600*50];
  for k=1:length(time)
    disp(sprintf('time = %6g, timeString = ''%s''', time(k), formattime(time(k))));
  end
  if nargout > 0
    timeString = '';
  end
  return
end

if ~exist('mode', 'var')
  mode = 'long';
end

if time < 0
  disp('Warning: Time must be greater or equal zero.');
  timeString = '';
elseif time >= 3600*24
  days = floor(time / (3600*24));
  if days > 1
    dayString = 'days';
  else
    dayString = 'day';
  end
  hours = floor(mod(time, 3600*24) / 3600);
  if hours == 0
    timeString = sprintf('%d %s', days, dayString);
  else
    if hours > 1
      hourString = 'hours';
    else
      hourString = 'hour';
    end
    timeString = sprintf('%d %s and %d %s', days, dayString, hours, hourString);
  end

elseif time >= 3600
  hours = floor(mod(time, 3600*24) / 3600);
  if hours > 1
    hourString = 'hours';
  else
    hourString = 'hour';
  end
  minutes = floor(mod(time, 3600) / 60);
  if minutes == 0
    timeString = sprintf('%d %s', hours, hourString);
  else
    if minutes > 1
      minuteString = 'minutes';
    else
      minuteString = 'minute';
    end
    timeString = sprintf('%d %s and %d %s', hours, hourString, minutes, minuteString);
  end

elseif time >= 60
  minutes = floor(time / 60);
  if minutes > 1
    minuteString = 'minutes';
  else
    minuteString = 'minute';
  end
  seconds = floor(mod(time, 60));
  if seconds == 0
    timeString = sprintf('%d %s', minutes, minuteString);
  else
    if seconds > 1
      secondString = 'seconds';
    else
      secondString = 'second';
    end
    timeString = sprintf('%d %s and %d %s', minutes, minuteString, seconds, secondString);
  end

else
  if time > 10
    seconds = floor(time);
  else
    seconds = floor(time * 100) / 100;
  end
  if seconds > 0
    if seconds ~= 1
      timeString = sprintf('%.4g seconds', seconds);
    else
      timeString = '1 second';
    end
  else
    timeString = sprintf('%.4g seconds', time);
  end
end

switch mode
  case 'long'
    % do nothing
  case 'short'
    timeString = strrep(timeString, ' and ', ' ');
    timeString = strrep(timeString, ' days', 'd');
    timeString = strrep(timeString, ' day', 'd');
    timeString = strrep(timeString, ' hours', 'h');
    timeString = strrep(timeString, ' hour', 'h');
    timeString = strrep(timeString, ' minutes', 'm');
    timeString = strrep(timeString, ' minute', 'm');
    timeString = strrep(timeString, ' seconds', 's');
    timeString = strrep(timeString, ' second', 's');
  otherwise
    error('Mode ''%s'' unknown in function %s.', mode, mfilename);
end


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合网在线视频| 午夜精品久久久久久久久| 亚洲精品中文在线| 麻豆成人免费电影| 色欧美乱欧美15图片| 久久欧美中文字幕| 免费看日韩a级影片| 色一情一伦一子一伦一区| 26uuu亚洲婷婷狠狠天堂| 亚洲成av人影院| 色一情一乱一乱一91av| 国产精品热久久久久夜色精品三区| 日本不卡在线视频| 欧美人与禽zozo性伦| 一二三区精品视频| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 奇米影视7777精品一区二区| 波多野结衣91| 中文字幕乱码久久午夜不卡| 亚洲超碰97人人做人人爱| 99热99精品| 国产精品国产自产拍高清av王其| 九九九精品视频| 欧美日韩成人高清| 午夜av区久久| 欧美日韩精品一区二区| 亚洲国产日韩一级| 欧美日韩视频在线第一区| 尤物在线观看一区| 日本精品免费观看高清观看| 国产无一区二区| 国产**成人网毛片九色| 亚洲国产成人自拍| 不卡的av电影在线观看| 国产精品高清亚洲| 91美女在线视频| 亚洲综合一区二区精品导航| 欧美午夜精品电影| 天天综合日日夜夜精品| 欧美一卡2卡三卡4卡5免费| 亚洲电影激情视频网站| 日韩一区二区精品在线观看| 久久福利资源站| 国产精品青草综合久久久久99| 成人在线视频一区二区| 亚洲视频一二三| 欧美日韩免费观看一区二区三区| 亚洲国产欧美在线人成| 日韩欧美精品三级| 国产高清一区日本| 亚洲人成电影网站色mp4| 在线观看视频欧美| 蜜芽一区二区三区| 国产无一区二区| 91精品福利在线| 青青草97国产精品免费观看无弹窗版| 欧美一区二区福利视频| 国产在线播放一区二区三区| 国产精品亲子伦对白| 91论坛在线播放| 蜜臀99久久精品久久久久久软件| 久久精品一二三| 欧美亚洲图片小说| 国产在线精品国自产拍免费| 国产精品午夜免费| 欧美日韩国产美| 国产精品亚洲专一区二区三区 | 国产风韵犹存在线视精品| 日韩毛片精品高清免费| 欧美精品在线观看一区二区| 国产乱人伦偷精品视频免下载| 亚洲美女视频一区| 日韩一二三区视频| 99视频一区二区三区| 久久精品久久99精品久久| 亚洲丝袜另类动漫二区| 欧美岛国在线观看| 蜜乳av一区二区三区| 欧美日本不卡视频| 成人毛片在线观看| 日韩精品亚洲一区二区三区免费| 国产欧美一区二区精品秋霞影院 | 中文字幕 久热精品 视频在线 | 欧美一级在线视频| gogo大胆日本视频一区| 蜜桃视频在线观看一区二区| 亚洲在线免费播放| 国产精品亲子伦对白| 亚洲精品在线观看视频| 欧美日本国产视频| 色综合久久综合网欧美综合网| 国产一区91精品张津瑜| 天堂va蜜桃一区二区三区漫画版| 亚洲欧美日韩在线不卡| 久久久亚洲国产美女国产盗摄 | 亚洲成人精品影院| 亚洲人吸女人奶水| 久久久一区二区| 日韩一二三区不卡| 在线不卡欧美精品一区二区三区| 91丨porny丨国产| av在线综合网| 成人高清免费观看| 国产成人av影院| 国产成都精品91一区二区三| 久久国产精品无码网站| 蜜桃视频一区二区三区在线观看| 丝袜诱惑制服诱惑色一区在线观看| 综合久久一区二区三区| 中文字幕日韩一区| 中文字幕视频一区二区三区久| 国产精品视频在线看| 国产午夜精品久久| 国产精品入口麻豆原神| 国产精品不卡一区| 亚洲视频在线一区二区| ...xxx性欧美| 亚洲精品乱码久久久久久久久 | 亚洲五月六月丁香激情| 一区二区三区免费观看| 亚洲国产视频一区二区| 亚洲午夜精品网| 日韩专区中文字幕一区二区| 日本色综合中文字幕| 日本aⅴ精品一区二区三区 | 91.com在线观看| 欧美精品自拍偷拍动漫精品| 91精品欧美一区二区三区综合在 | 欧美做爰猛烈大尺度电影无法无天| 色综合久久久久综合| 欧美三级一区二区| 日韩欧美国产综合| 国产日韩欧美高清| 亚洲免费观看视频| 日韩成人精品在线| 激情都市一区二区| 成人av综合在线| 欧美三日本三级三级在线播放| 9191久久久久久久久久久| 精品久久一区二区三区| 中文字幕亚洲一区二区av在线| 亚洲精品一二三四区| 日韩二区在线观看| 国产aⅴ精品一区二区三区色成熟| www.日韩大片| 欧美一区二区三区影视| 国产亚洲精品资源在线26u| 亚洲人xxxx| 久久精品国产一区二区| 成人精品视频一区二区三区| 欧美日韩久久久| 久久精品视频免费| 亚洲国产一区视频| 国产成人精品免费| 欧美日韩国产美女| 国产精品久久免费看| 亚洲亚洲精品在线观看| 国产成人精品网址| 欧美狂野另类xxxxoooo| 国产精品亲子伦对白| 秋霞电影网一区二区| 99在线热播精品免费| 欧美va亚洲va在线观看蝴蝶网| 中文字幕人成不卡一区| 美日韩一区二区| 欧美这里有精品| 国产精品视频你懂的| 福利电影一区二区| 欧美久久久久免费| 亚洲欧洲99久久| 国产盗摄一区二区三区| 4hu四虎永久在线影院成人| 国产精品九色蝌蚪自拍| 久久av中文字幕片| 在线播放一区二区三区| 亚洲美女在线国产| 大白屁股一区二区视频| 欧美大片在线观看一区| 五月激情六月综合| 日本久久精品电影| 中文字幕精品一区二区精品绿巨人| 奇米精品一区二区三区在线观看一| 一本一本久久a久久精品综合麻豆| 国产欧美一区二区精品性色超碰 | 综合久久久久久久| 国产xxx精品视频大全| 欧美sm美女调教| 日韩不卡在线观看日韩不卡视频| 在线观看日韩av先锋影音电影院| 国产精品久久综合| 成人午夜电影久久影院| 久久精品人人做| 国产剧情一区在线| 26uuu欧美日本| 国产一区二区不卡老阿姨| 久久人人爽爽爽人久久久| 久久99久久久久| 欧美tickling网站挠脚心| 精品一区二区影视| 久久在线观看免费|