Log In
New Account
  
 
Home My Page Project Tree Code Snippets Project Openings NUTSS
 
 
Summary Tracker Lists CVS Files
 

CVS | Administration

Diff for /libnutss/examples/process_data.m between versions 1.2 and 1.3

version 1.2, 2007/09/04 17:24:45 version 1.3, 2007/09/21 04:23:17
Line 1 Line 1
 function re = process_data(sampleclocks)  function re = process_data(sampleclocks)
   
       % should be about mincapacity/mindegree
     capacityPerPeer = 400;      capacityPerPeer = 400;
   
     fid = fopen('args.txt','r');      fid = fopen('args.txt','r');
Line 7  function re = process_data(sampleclocks) Line 8  function re = process_data(sampleclocks)
     fclose(fid);      fclose(fid);
     capacities = zeros(1,n);      capacities = zeros(1,n);
     peers = zeros(n,1);      peers = zeros(n,1);
       peertimes = zeros(n,1);
     lengths = zeros(n,1);      lengths = zeros(n,1);
       lengthtimes = zeros(n,1);
       capoverpeer = zeros(1,n);
     rejections = zeros(n,1);      rejections = zeros(n,1);
     retirations = zeros(n,1);      retirations = zeros(n,1);
       retirebucket = zeros(60,1);
       freecapacity = zeros(n,1);
       freecapacitytimes = zeros(n,1);
     f = cell(1,n);      f = cell(1,n);
     % read the files, get all the data organized      % read the files, get all the data organized
     for i=1:n      for i=1:n
         fid=fopen(['peer_node' num2str(i) '.txt'],'r');          fid=fopen(['peer_node' num2str(i) '.txt'],'r');
         if(fid > 0)          if(fid > 0)
            numpeers = fscanf(fid,'%d %d');             numpeers = fscanf(fid,'%d %d');
          peers(i,1:length(numpeers)) = numpeers;           peers(i,1:length(numpeers(2:2:end))) = numpeers(2:2:end);
            peertimes(i,1:length(numpeers(1:2:end))) = numpeers(1:2:end);
            fclose(fid);             fclose(fid);
         end          end
     end      end
Line 24  function re = process_data(sampleclocks) Line 32  function re = process_data(sampleclocks)
         fid=fopen(['walk_node' num2str(i) '.txt'],'r');          fid=fopen(['walk_node' num2str(i) '.txt'],'r');
         if(fid > 0)          if(fid > 0)
            walk = fscanf(fid,'%d %d');             walk = fscanf(fid,'%d %d');
          lengths(i,1:length(walk)) = walk;           lengths(i,1:length(walk(2:2:end))) = walk(2:2:end);
            lengthtimes(i,1:length(walk(1:2:end))) = walk(1:2:end);
            fclose(fid);             fclose(fid);
         end          end
   end    end
     for i=1:n      for i=1:n
         fid=fopen(['data_node' num2str(i) '.txt'],'r');          fid=fopen(['data_node' num2str(i) '.txt'],'r');
         if(fid > 0)          if(fid > 0)
Line 45  function re = process_data(sampleclocks) Line 54  function re = process_data(sampleclocks)
                 if(strcmp(t{2}{j},'reject'))                  if(strcmp(t{2}{j},'reject'))
                     rejections(i,j) = t{1}(j);                      rejections(i,j) = t{1}(j);
                 elseif(strcmp(t{2}{j},'retire'))                  elseif(strcmp(t{2}{j},'retire'))
                       curminute = floor(t{1}(j) / 60);
                       retirebucket(curminute) = retirebucket(curminute)+1;
                     retirations(i,j) = t{1}(j);                      retirations(i,j) = t{1}(j);
                 else                  else
                     data = sscanf(t{2}{j},'%d;%d;%d;');                      data = sscanf(t{2}{j},'%d;%d;%d;');
Line 88  function re = process_data(sampleclocks) Line 99  function re = process_data(sampleclocks)
             end              end
             [sortedtimes,permutation]=sort(times./60);              [sortedtimes,permutation]=sort(times./60);
             d(i,1:2*rqsts) = cumsum(delta(permutation));              d(i,1:2*rqsts) = cumsum(delta(permutation));
   
               freecapacity(i,1:2*rqsts) = capacities(i)-d(i,1:2*rqsts);
               freecapacitytimes(i,1:2*rqsts) = sortedtimes;
   
               mypeers = [];
               for ii=1:length(sortedtimes)
                   % find closest timestep
                   newmin = inf;
                   for jj=1:length(peertimes(i,:))
                       mine = inf;
                       if sortedtimes(ii)*60 > 0 && peertimes(i,jj) > 0 && ...
                          abs(sortedtimes(ii)*60-peertimes(i,jj)) < newmin
                           newmin = abs(sortedtimes(ii)*60-peertimes(i,jj));
                           mine = peers(i,jj);
                       end
                   end
                   mypeers = [mypeers mine];
               end
               nonzp = peers(i,find(peers(i,:)));
               capoverpeer(1:length(nonzp),i) = capacities(i)./nonzp';
             %%              %%
             if(length(sortedtimes(find(d(i,:) > capacities(i)))) > 0)              if(length(sortedtimes(find(d(i,:) > capacities(i)))) > 0)
                 i                  i
Line 131  function re = process_data(sampleclocks) Line 162  function re = process_data(sampleclocks)
         end          end
     end      end
     hold off;      hold off;
   %{
       freecapbucket = zeros(1,60);
   
       for i=1:n
           buckets = zeros(2,60);
           for j=1:length(freecapacity)
              curminute = floor(freecapacitytimes(i,j));
              buckets(1,curminute+1) = buckets(1,curminute+1)+freecapacity(i,j);
              buckets(2,curminute+1) = buckets(2,curminute+1)+1;
           end
           freecapbucket = freecapbucket + buckets(1,:)./buckets(2,:);
           freecapbucket(find(isnan(freecapbucket))) = 0;
       end
     %}
       tot = 0;
       num = 0;
       freecapbucket = zeros(1,length(freecapacity));
       numalive = zeros(1,length(freecapacity));
       for j=1:length(freecapacity)
           tot = 0;
           num = 0;
           for i=1:n
               if freecapacity(i,j) > 0
                   tot = tot + freecapacity(i,j);
                   num = num + 1;
               end
           end
           freecapbucket(j) = tot / num;
           numalive(j) = num;
       end
   
       figure();
       title('average free capacity vs time');
       hold on;
       plot((1:length(freecapacity))./8,freecapbucket);
       hold off;
       figure();
       title('rejections per minute');
       hold on;
       plot(retirebucket);
       hold off;
       figure();
       title('num alive');
       hold on;
       plot(numalive);
       hold off;
   
       t = length(capoverpeer(:,1));
       md = zeros(1,t);
       for i=1:t
           sn = capoverpeer(i,:);
           md(i) = mean(abs(sn(find(sn))-capacityPerPeer));
       end
       figure();
       title('mean capacity / peer');
       hold on;
       plot((1:t)./8,md)
       hold off;
   
       figure();
       xlabel('Time (min)'); ylabel('Capacity / Peers');
       title('Comparison of Capacity / Peers Ratio to Optimal');
       for i=1:n
           if i == 1
               hold on;
               plot(1:round(t/8),capacityPerPeer*ones(1,round(t/8)),'r')
               hold off;
           end
           hold on;
           cpop = capoverpeer(:,i);
           plot((1:length(find(cpop)))./8,cpop(find(cpop)));
           hold off;
       end
   
   
   %{
     for k=1:length(sampleclocks)      for k=1:length(sampleclocks)
 %         figure(); axes(); title(['Distribution of Load per Peer at ' num2str(sampleclocks(k)) ' Minutes']);  %         figure(); axes(); title(['Distribution of Load per Peer at ' num2str(sampleclocks(k)) ' Minutes']);
 %         xlabel('Load per Peer'); ylabel('Number of Nodes'); hold on;  %         xlabel('Load per Peer'); ylabel('Number of Nodes'); hold on;
Line 153  function re = process_data(sampleclocks) Line 257  function re = process_data(sampleclocks)
         loads = loads(permu);          loads = loads(permu);
         bar(loads(find(~isnan(loads) & loads ~= 0))); hold off;          bar(loads(find(~isnan(loads) & loads ~= 0))); hold off;
     end      end
%}
 
 %{  %{
     return;      return;
   
Line 183  function re = process_data(sampleclocks) Line 288  function re = process_data(sampleclocks)
         title(['Node ' num2str(i) ' Capacity ' num2str(capacities(i))]);          title(['Node ' num2str(i) ' Capacity ' num2str(capacities(i))]);
         xlabel('Time'); ylabel('Peers');          xlabel('Time'); ylabel('Peers');
 end  end
%}
     [n,t] = size(lengths);      [n,t] = size(lengths);
     f1 = figure();      f1 = figure();
     title([' Extensions versus Time']);      title([' Extensions versus Time']);
Line 204  end Line 309  end
         plot(times,mylengths);          plot(times,mylengths);
         hold off;          hold off;
     end      end
%}
 %     figure(); axes(); title('Distribution of Mean Load');  %     figure(); axes(); title('Distribution of Mean Load');
 %     xlabel('Mean Load'); ylabel('Nodes'); hold on;  %     xlabel('Mean Load'); ylabel('Nodes'); hold on;
 %     hist(m,35); hold off;  %     hist(m,35); hold off;

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
 

GForge.cis.cornell.edu is brought to you by

Cornell Computing and Information Science


Powered By GForge Collaborative Development Environment