瀏覽代碼

gin commit from glumanda

New files: 1
Modified files: 3
Deleted files: 1
Kevin 3 月之前
父節點
當前提交
90eef52d79
共有 5 個文件被更改,包括 51 次插入8 次删除
  1. 1 0
      .~lock.GIN_tutorial.odp#
  2. 0 1
      Hunter_funk.m
  3. 0 0
      test.m
  4. 0 1
      werewolf.m
  5. 50 6
      wwstudy.m

+ 1 - 0
.~lock.GIN_tutorial.odp#

@@ -0,0 +1 @@
+,kevin,glumanda,27.02.2024 22:13,file:///home/kevin/.config/libreoffice/4;

+ 0 - 1
Hunter_funk.m

@@ -22,7 +22,6 @@ function [Wolves, Villagers, Hunter_mode] = Hunter_funk(Wolves, Villagers)
 %                  it has been killed
 %
 %
-% Katrin Stalf
 % 13.09.2022
 
 %%

+ 0 - 0
test.m


+ 0 - 1
werewolf.m

@@ -43,7 +43,6 @@ function [WinningTeam, DaysPlayed] = werewolf(Num_Players, PercWerewolf, ...
 %   DaysPlayed    -> Number of days played
 %
 %
-% Katrin Stalf
 % 15.09.2022
 
 %% Check variables

+ 50 - 6
wwstudy.m

@@ -1,14 +1,14 @@
 %% werewolf study
-% setze 
+% set
 tic()
 maxPWW = 99;
-NRepSims = 100000;
+NRepSims = 100;
 
 meanWinningRateV = zeros(1,length(1 :  maxPWW));
 meanWinningRateW = zeros(1,length(1 : maxPWW));
-toc()
+tserial = toc();
 tic()
-parfor k = 1 : maxPWW
+for k = 1 : maxPWW
 winVillage = 0;
 winWerewolfs = 0;
     for p = 1:NRepSims
@@ -23,7 +23,7 @@ winWerewolfs = 0;
     meanWinningRateW(k) = winWerewolfs/NRepSims;
 
 end
-toc()
+tparallel = toc();
 %%
 figure()
 hold on
@@ -32,4 +32,48 @@ plot(meanWinningRateW)
 xlabel('perc WW')
 ylabel('winningrate')
 legend('villager', 'WW')
-% hihi
+
+%% calculate max speedup 
+tTotal = tserial + tparallel;
+serialFraq = tserial / tTotal;
+parallelFraq = tparallel / tTotal;
+
+N = 4; % poolsize
+maxSpeedup4 = 1./((1-parallelFraq)+(parallelFraq./N)); 
+disp('max speedup at N cores: ')
+disp(maxSpeedup4)
+%% for different poolsizes
+N = 1:10;
+maxSpeedupN = 1./((1-parallelFraq)+(parallelFraq./N));
+plot(N, maxSpeedupN)
+xlabel('cores')
+ylabel('max speed-up')
+
+%% run in parallel
+% set
+tic()
+maxPWW = 99;
+NRepSims = 100000;
+
+meanWinningRateV = zeros(1,length(1 :  maxPWW));
+meanWinningRateW = zeros(1,length(1 : maxPWW));
+toc()
+tic()
+parfor k = 1 : maxPWW
+winVillage = 0;
+winWerewolfs = 0;
+    for p = 1:NRepSims
+        [WinningTeam, DaysPlayed] = werewolf(20, k);
+        if strcmp('Villagers',WinningTeam)
+            winVillage = winVillage + 1;
+        else
+            winWerewolfs = winWerewolfs + 1;
+        end
+    end
+    meanWinningRateV(k) = winVillage/NRepSims;
+    meanWinningRateW(k) = winWerewolfs/NRepSims;
+
+end
+toc()
+
+