├── CDF_serverincrease.m ├── CPUusage.m ├── Central.m ├── Central_dis_time_compare.m ├── Centralforce.m ├── Centraloptimal.m ├── Centraloptimalbackup.m ├── Centralschedule.m ├── Centraluservote.m ├── Comstartupart.m ├── EFTcompute.m ├── EdgeNetworks.m ├── Edgenetworks2.m ├── Etime.m ├── Game.m ├── Generategraph.m ├── Graphgenerateparalel.m ├── IsExcept.m ├── Isin.m ├── Max.m ├── Maxalluser.m ├── Maxset.m ├── MultiUser.m ├── Multiusertemp.m ├── Prioritymax.m ├── README.md ├── Rankrecursion.m ├── Rankup.m ├── Recomputecom.m ├── ServerComputediffer2.m ├── Server_computetotal.m ├── Servercomputediffer.m ├── Serverincrease.m ├── Serverincrease2.m ├── UpdateChannel.m ├── Updatechannelschedule.m ├── Updateschedule.m ├── Uploadusercount.m ├── User_deley_two.m ├── Userincrease.m ├── Userincrease2.m ├── Userincreaseuploadnum.m ├── Usertaskdiffer.m ├── Userupdatechose.m ├── Uservote.m ├── cpuusage_paralelchange.m ├── cpuusage_tasknumchange.m ├── cpuusage_userincrease.m ├── equal.m ├── globecomedgenetworks.m ├── globecomedgenetworks2.m ├── globecomonedge.m ├── globecomtemp.m ├── paralel_serial_compare.m ├── parallelchange.m ├── parallelchange2.m ├── schedule.m └── tasknumchangebutcomputeconst.m /CDF_serverincrease.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/CDF_serverincrease.m -------------------------------------------------------------------------------- /CPUusage.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/CPUusage.m -------------------------------------------------------------------------------- /Central.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Central.m -------------------------------------------------------------------------------- /Central_dis_time_compare.m: -------------------------------------------------------------------------------- 1 | Usernum=1; 2 | Servernum=2; 3 | Num=6; 4 | Avgdeleymin=zeros(1,Num); 5 | 6 | Tasknum=zeros(1,Num)+10; 7 | %Tasknum(1,2)=1; 8 | %Tasknum(1,2)=2; 9 | %Tasknum(1,2)=3; 10 | Nummax=max(Tasknum); 11 | Iterationnum=100; 12 | User=0; 13 | server=0; 14 | Avgdeley=zeros(1,Iterationnum); 15 | Avgdeleycentral=zeros(1,Num); 16 | Avgdeleydistribute=zeros(1,Num); 17 | Timeslotarray=zeros(Iterationnum,1); 18 | Taskgraph=zeros(Nummax,Nummax,Num); 19 | Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 20 | for p=2:Num 21 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 22 | end 23 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 24 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 25 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 26 | %Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 27 | Transdata=(zeros(Nummax,Nummax,Num)+0.4)*30; 28 | Computecost=(zeros(Nummax,Servernum+1,Num)+0.3)*50; 29 | Transferrate=(zeros(Servernum+1,Servernum+1,Num)+0.26)*30; 30 | for p=1:Num 31 | for a=1:Servernum+1 32 | for b=1:Servernum+1 33 | if a<=b 34 | Transferrate(b,a,p)=Transferrate(a,b,p); 35 | end 36 | end 37 | end 38 | end 39 | Comstartup=(zeros(1,Servernum+Num)+0.1)*3; 40 | %Local=zeros(1,Num)+Servernum+1; 41 | Iterationnum=100; 42 | 43 | 44 | 45 | while Usernum<=Num 46 | [Schedule,Schedulemin,Channelmin,avgdeleymin]=Centralforce(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup); 47 | Avgdeleycentral(1,Usernum)=avgdeleymin; 48 | [Schedule,Channel,Avgdeley,Usercurrent,Avgdeleymin,point]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 49 | Avgdeleydistribute(1,Usernum)=min([Avgdeley(1,Iterationnum),Avgdeley(1,Iterationnum-1)]); 50 | Usernum=Usernum+1; 51 | end 52 | plot(1:Num,Avgdeleycentral,'--'); 53 | hold on; 54 | plot(1:Num,Avgdeleydistribute); 55 | % plot([1,Iterationnum],[avgdeleymin,avgdeleymin],'--'); 56 | % 57 | % plot(1:Num,Timecentral); 58 | % hold on; 59 | % plot(1:Num,Timedistribute,'--'); 60 | 61 | % plot(1:Num,Centraldeley,'--'); 62 | % hold on; 63 | % plot(1:Num,Distributedeley); 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /Centralforce.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Centralforce.m -------------------------------------------------------------------------------- /Centraloptimal.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Centraloptimal.m -------------------------------------------------------------------------------- /Centraloptimalbackup.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Centraloptimalbackup.m -------------------------------------------------------------------------------- /Centralschedule.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Centralschedule.m -------------------------------------------------------------------------------- /Centraluservote.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Centraluservote.m -------------------------------------------------------------------------------- /Comstartupart.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Comstartupart.m -------------------------------------------------------------------------------- /EFTcompute.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/EFTcompute.m -------------------------------------------------------------------------------- /EdgeNetworks.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/EdgeNetworks.m -------------------------------------------------------------------------------- /Edgenetworks2.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Edgenetworks2.m -------------------------------------------------------------------------------- /Etime.m: -------------------------------------------------------------------------------- 1 | Usernum=1; 2 | Servernum=2; 3 | Num=6; 4 | Timecentral=zeros(1,Num); 5 | Timedistribute=zeros(1,Num); 6 | Centraldeley=zeros(1,Num); 7 | Distributedeley=zeros(1,Num); 8 | Tasknum=zeros(1,Num)+10; 9 | Nummax=max(Tasknum); 10 | Taskgraph=zeros(Nummax,Nummax,Num); 11 | Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 12 | for p=2:Num 13 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 14 | end 15 | Transdata=rand(Nummax,Nummax,Num)*30; 16 | Computecost=rand(Nummax,Servernum+1,Num)*50; 17 | Transferrate=rand(Servernum+1,Servernum+1,Num)*50; 18 | for p=1:Num 19 | for a=1:Servernum+1 20 | for b=1:Servernum+1 21 | if a<=b 22 | Transferrate(b,a,p)=Transferrate(a,b,p); 23 | end 24 | end 25 | end 26 | end 27 | Q=Servernum+Num; 28 | Comstartup=rand(1,Q)*3; 29 | Iterationnum=10; 30 | while Usernum<=Num 31 | t1=clock; 32 | [Schedule,Schedulemin,Channelmin,avgdeleymin]=Centralforce(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup); 33 | t2=clock; 34 | Timecentral(1,Usernum)=etime(t2,t1); 35 | t1=clock; 36 | [Schedule,Channel,Avgdeley,Usercurrent,Avgdeleymin,point]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 37 | t2=clock; 38 | Timedistribute(1,Usernum)=etime(t2,t1); 39 | Usernum=Usernum+1; 40 | end 41 | 42 | plot(1:Num,Timecentral); 43 | hold on; 44 | plot(1:Num,Timedistribute,'--'); 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /Game.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Game.m -------------------------------------------------------------------------------- /Generategraph.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Generategraph.m -------------------------------------------------------------------------------- /Graphgenerateparalel.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Graphgenerateparalel.m -------------------------------------------------------------------------------- /IsExcept.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/IsExcept.m -------------------------------------------------------------------------------- /Isin.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Isin.m -------------------------------------------------------------------------------- /Max.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Max.m -------------------------------------------------------------------------------- /Maxalluser.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Maxalluser.m -------------------------------------------------------------------------------- /Maxset.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Maxset.m -------------------------------------------------------------------------------- /MultiUser.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/MultiUser.m -------------------------------------------------------------------------------- /Multiusertemp.m: -------------------------------------------------------------------------------- 1 | Usernum=30; 2 | Servernum=2; 3 | Tasknum=zeros(1,Usernum)+10; 4 | %Tasknum(1,2)=1; 5 | %Tasknum(1,2)=2; 6 | %Tasknum(1,2)=3; 7 | Nummax=max(Tasknum); 8 | N=0; 9 | for k=1:Usernum 10 | N=N+Tasknum(1,k); 11 | end 12 | Q=Servernum+Usernum; 13 | Local=zeros(1,Usernum)+Servernum+1; 14 | Iterationnum=100; 15 | User=0; 16 | server=0; 17 | Computetotal=150; 18 | Tasktotal=Nummax; 19 | Avgdeley=zeros(1,Iterationnum); 20 | Timeslotarray=zeros(Iterationnum,1); 21 | Taskgraph=zeros(Nummax,Nummax,Usernum); 22 | Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 23 | for p=2:Usernum 24 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 25 | end 26 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 27 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 28 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 29 | Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 30 | Transdata=rand(Nummax,Nummax,Usernum)*30; 31 | Computecost=zeros(Nummax,Servernum+1,Usernum); 32 | Computecost(1:Nummax,1:Servernum,:)=rand(Nummax,Servernum,Usernum)+Computetotal/Tasktotal/10; 33 | Computecost(1:Nummax,Servernum+1,:)=rand(Nummax,Usernum)+Computetotal/Tasktotal; 34 | Transferrate=rand(Servernum+1,Servernum+1,Usernum)*50; 35 | for p=1:Usernum 36 | for a=1:Servernum+1 37 | for b=1:Servernum+1 38 | if a<=b 39 | Transferrate(b,a,p)=Transferrate(a,b,p); 40 | end 41 | end 42 | end 43 | end 44 | Comstartup=rand(1,Q)*3; 45 | 46 | [Schedule,Channel,Avgdeley,Usercurrent,Avgdeleymin,point]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 47 | 48 | plot(1:1:Iterationnum,Avgdeley); 49 | hold on; -------------------------------------------------------------------------------- /Prioritymax.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Prioritymax.m -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # offload-game 2 | game theory for offloading 3 | -------------------------------------------------------------------------------- /Rankrecursion.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Rankrecursion.m -------------------------------------------------------------------------------- /Rankup.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Rankup.m -------------------------------------------------------------------------------- /Recomputecom.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Recomputecom.m -------------------------------------------------------------------------------- /ServerComputediffer2.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/ServerComputediffer2.m -------------------------------------------------------------------------------- /Server_computetotal.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Server_computetotal.m -------------------------------------------------------------------------------- /Servercomputediffer.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Servercomputediffer.m -------------------------------------------------------------------------------- /Serverincrease.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Serverincrease.m -------------------------------------------------------------------------------- /Serverincrease2.m: -------------------------------------------------------------------------------- 1 | Usernum=100; 2 | Servernum=1; 3 | Num=50; 4 | Avgdeleymin=zeros(1,Num); 5 | Avgdeleyminton=zeros(1,Num); 6 | Computetotal=200; 7 | Tasknum=zeros(1,Usernum)+10; 8 | Nummax=max(Tasknum); 9 | Tasktotal=Nummax; 10 | Taskgraph=zeros(Nummax,Nummax,Usernum); 11 | %Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 12 | Taskgraph(:,:,1)=Graphgenerateparalel(Nummax,Nummax,Nummax-2); 13 | for p=2:Usernum 14 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 15 | end 16 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 17 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 18 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 19 | %Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 20 | Transdata=(zeros(Nummax,Nummax,Usernum)+0.3)*10; 21 | %Computecost=zeros(Nummax,Num+1,Usernum)+Computetotal/Nummax; 22 | Computecost=zeros(Nummax,Num+1,Usernum); 23 | Computecost(1:Nummax,1:Num,:)=zeros(Nummax,Num,Usernum)+Computetotal/Tasktotal/10; 24 | Computecost(1:Nummax,Num+1,:)=zeros(Nummax,Usernum)+Computetotal/Tasktotal; 25 | Transferrate=(zeros(Num+1,Num+1,Usernum)+0.3)*300; 26 | for r1=1:Usernum 27 | for r2=1:Num 28 | for r3=1:Num 29 | Transferrate(r2,r3,r1)=Transferrate(r2,r3,r1)*Inf; 30 | end 31 | end 32 | end 33 | for p=1:Usernum 34 | for a=1:Num+1 35 | for b=1:Num+1 36 | if a<=b 37 | Transferrate(b,a,p)=Transferrate(a,b,p); 38 | end 39 | end 40 | end 41 | end 42 | Comstartup=(zeros(1,Usernum+Num)+0.1)*1; 43 | Computenergy=zeros(1,Usernum)+0.5; 44 | Transmitpower=zeros(1,Usernum)+0.2; 45 | alfa=zeros(1,Usernum)+0.5; 46 | Size=zeros(Usernum,Nummax)+1000; 47 | Avgdeley=zeros(1,Num); 48 | Totalconsumption=zeros(1,Num); 49 | while Servernum<=Num 50 | Computecosttemp=zeros(Nummax,Servernum+1,Usernum); 51 | Computecosttemp(1:Nummax,1:Servernum,:)=Computecost(1:Nummax,1:Servernum,:); 52 | Computecosttemp(1:Nummax,Servernum+1,:)=Computecost(1:Nummax,Num+1,:); 53 | Local=zeros(1,Usernum)+Servernum+1; 54 | Transferratetemp=zeros(Servernum+1,Servernum+1,Usernum); 55 | Transferratetemp(1:Servernum,1:(Servernum+1),:)=Transferrate(1:Servernum,1:(Servernum+1),:); 56 | Transferratetemp(Servernum+1,1:(Servernum+1),:)=Transferrate(Servernum+1,1:(Servernum+1),:); 57 | for p=1:Servernum 58 | Transferratetemp(Servernum+1,p,:)=Transferrate(Num+1,p,:); 59 | Transferratetemp(p,Servernum+1,:)=Transferratetemp(Servernum+1,p,:); 60 | end 61 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomedgenetworks2(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecosttemp,Transferratetemp,Comstartup,Computenergy,Transmitpower,alfa,Size); 62 | basesearch=0; 63 | deley=0; 64 | for t=1:Usernum 65 | Startsearch(1,t)=basesearch; 66 | basesearch=basesearch+Tasknum(1,t); 67 | end 68 | for i=1:Usernum 69 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 70 | end 71 | Avgdeley(1,Servernum)=deley/Usernum; 72 | Totalconsumption(1,Servernum)=sum(Computeconsumption+Transmitconsumption); 73 | Servernum=Servernum+1; 74 | end 75 | 76 | %single server 77 | Servernum=1; 78 | Avgdeleyonedge=zeros(1,Num); 79 | Totalconsumptiononedge=zeros(1,Num); 80 | while Servernum<=Num 81 | Computecosttemp=zeros(Nummax,Servernum+1,Usernum); 82 | Computecosttemp(1:Nummax,1:Servernum,:)=Computecost(1:Nummax,1:Servernum,:); 83 | Computecosttemp(1:Nummax,Servernum+1,:)=Computecost(1:Nummax,Num+1,:); 84 | Local=zeros(1,Usernum)+Servernum+1; 85 | Transferratetemp=zeros(Servernum+1,Servernum+1,Usernum); 86 | Transferratetemp(1:Servernum,1:(Servernum+1),:)=Transferrate(1:Servernum,1:(Servernum+1),:); 87 | Transferratetemp(Servernum+1,1:(Servernum+1),:)=Transferrate(Servernum+1,1:(Servernum+1),:); 88 | for p=1:Servernum 89 | Transferratetemp(Servernum+1,p,:)=Transferrate(Num+1,p,:); 90 | Transferratetemp(p,Servernum+1,:)=Transferratetemp(Servernum+1,p,:); 91 | end 92 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomonedge(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecosttemp,Transferratetemp,Comstartup,Computenergy,Transmitpower,alfa,Size); 93 | basesearch=0; 94 | deley=0; 95 | for t=1:Usernum 96 | Startsearch(1,t)=basesearch; 97 | basesearch=basesearch+Tasknum(1,t); 98 | end 99 | for i=1:Usernum 100 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 101 | end 102 | Avgdeleyonedge(1,Servernum)=deley/Usernum; 103 | Totalconsumptiononedge(1,Servernum)=sum(Computeconsumption+Transmitconsumption); 104 | Servernum=Servernum+1; 105 | end 106 | 107 | consumptiontemp=0; 108 | for i=1:Usernum 109 | consumptiontemp=consumptiontemp+Computenergy(1,i)*(Computecost(1,Local(1,i),i)+Computecost(Tasknum(1,i),Local(1,i),i)); 110 | end 111 | 112 | %ton 113 | Avgdeleyton=zeros(1,Num); 114 | Totalconsumptionton=zeros(1,Num); 115 | Servernum=1; 116 | Tasknum=zeros(1,Usernum)+3; 117 | Size(:,1)=0; 118 | Size(:,3)=0; 119 | Nummax=max(Tasknum); 120 | Taskgraph=zeros(Nummax,Nummax,Usernum); 121 | for k=1:Usernum 122 | Taskgraph(:,:,k)=Graphgenerateparalel(3,Nummax,1); 123 | end 124 | Computecost=zeros(Nummax,Num+1,Usernum); 125 | Computecost(1:Nummax,1:Num,:)=zeros(Nummax,Num,Usernum)+Computetotal/10; 126 | Computecost(1:Nummax,Num+1,:)=zeros(Nummax,Usernum)+Computetotal; 127 | % Computecost(1:Nummax,1:Servernum,:)=rand(Nummax,Servernum,Usernum)*Computetotal/5; 128 | % Computecost(1:Nummax,Servernum+1,:)=rand(Nummax,Usernum)*2*Computetotal; 129 | Computecost(1,:,:)=0; 130 | Computecost(3,:,:)=0; 131 | Transdata=zeros(Nummax,Nummax,Usernum); 132 | for u=1:Usernum 133 | Transdata(1,2,u)=25; 134 | Transdata(2,3,u)=5; 135 | end 136 | while Servernum<=Num 137 | Computecosttemp=zeros(Nummax,Servernum+1,Usernum); 138 | Computecosttemp(1:Nummax,1:Servernum,:)=Computecost(1:Nummax,1:Servernum,:); 139 | Computecosttemp(1:Nummax,Servernum+1,:)=Computecost(1:Nummax,Num+1,:); 140 | Local=zeros(1,Usernum)+Servernum+1; 141 | Transferratetemp=zeros(Servernum+1,Servernum+1,Usernum); 142 | Transferratetemp(1:Servernum,1:(Servernum+1),:)=Transferrate(1:Servernum,1:(Servernum+1),:); 143 | Transferratetemp(Servernum+1,1:(Servernum+1),:)=Transferrate(Servernum+1,1:(Servernum+1),:); 144 | for p=1:Servernum 145 | Transferratetemp(Servernum+1,p,:)=Transferrate(Num+1,p,:); 146 | Transferratetemp(p,Servernum+1,:)=Transferratetemp(Servernum+1,p,:); 147 | end 148 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomedgenetworks2(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecosttemp,Transferratetemp,Comstartup,Computenergy,Transmitpower,alfa,Size); 149 | basesearch=0; 150 | deley=0; 151 | for t=1:Usernum 152 | Startsearch(1,t)=basesearch; 153 | basesearch=basesearch+Tasknum(1,t); 154 | end 155 | for i=1:Usernum 156 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 157 | end 158 | Avgdeleyton(1,Servernum)=deley/Usernum; 159 | Totalconsumptionton(1,Servernum)=sum(Computeconsumption+Transmitconsumption); 160 | Servernum=Servernum+1; 161 | end 162 | % plot(1:Num,Totalconsumption-consumptiontemp); 163 | % hold on; 164 | % plot(1:Num,Totalconsumptiononedge-consumptiontemp,'--'); 165 | % hold on; 166 | plot(1:Num,Totalconsumption); 167 | hold on; 168 | plot(1:Num,Totalconsumptiononedge,'--'); 169 | hold on; 170 | plot(1:Num,Totalconsumptionton); 171 | hold on; 172 | plot(1:Num,Avgdeley-2*Computetotal/Tasktotal); 173 | hold on; 174 | plot(1:Num,Avgdeleyton,'--'); 175 | hold on; 176 | plot(1:Num,Avgdeleyonedge-2*Computetotal/Tasktotal); -------------------------------------------------------------------------------- /UpdateChannel.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/UpdateChannel.m -------------------------------------------------------------------------------- /Updatechannelschedule.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Updatechannelschedule.m -------------------------------------------------------------------------------- /Updateschedule.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Updateschedule.m -------------------------------------------------------------------------------- /Uploadusercount.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Uploadusercount.m -------------------------------------------------------------------------------- /User_deley_two.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/User_deley_two.m -------------------------------------------------------------------------------- /Userincrease.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Userincrease.m -------------------------------------------------------------------------------- /Userincrease2.m: -------------------------------------------------------------------------------- 1 | Usernum=1; 2 | Servernum=20; 3 | Num=100; 4 | Avgdeley=zeros(1,Num); 5 | Avgdeleyton=Avgdeley; 6 | Totalconsumption=zeros(1,Num); 7 | Totalconsumptiononedge=zeros(1,Num); 8 | Totalconsumptionton=zeros(1,Num); 9 | Tasknum=zeros(1,Num)+10; 10 | Nummax=max(Tasknum); 11 | Computetotal=200; 12 | Tasktotal=Nummax; 13 | Taskgraph=zeros(Nummax,Nummax,Num); 14 | %Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 15 | Taskgraph(:,:,1)=Graphgenerateparalel(Nummax,Nummax,Nummax-2); 16 | for p=2:Num 17 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 18 | end 19 | Uploadnum=zeros(1,Num); 20 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 21 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 22 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 23 | %Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 24 | Transdata=(zeros(Nummax,Nummax,Num)+0.3)*10; 25 | Computecost=zeros(Nummax,Servernum+1,Num); 26 | Computecost(1:Nummax,1:Servernum,:)=zeros(Nummax,Servernum,Num)+Computetotal/Tasktotal/10; 27 | Computecost(1:Nummax,Servernum+1,:)=zeros(Nummax,Num)+Computetotal/Tasktotal; 28 | Transferrate=(zeros(Servernum+1,Servernum+1,Num)+0.3)*300; 29 | for r1=1:Num 30 | for r2=1:Servernum 31 | for r3=1:Servernum 32 | Transferrate(r2,r3,r1)=Transferrate(r2,r3,r1)*Inf; 33 | end 34 | end 35 | end 36 | for p=1:Num 37 | for a=1:Servernum+1 38 | for b=1:Servernum+1 39 | if a<=b 40 | Transferrate(b,a,p)=Transferrate(a,b,p); 41 | end 42 | end 43 | end 44 | end 45 | Comstartup=(zeros(1,Servernum+Num)+0.1)*1; 46 | Computenergy=zeros(1,Num)+0.5; 47 | Transmitpower=zeros(1,Num)+0.2; 48 | alfa=zeros(1,Num)+0.5; 49 | Size=zeros(Num,Nummax)+1000; 50 | Local=zeros(1,Num)+Servernum+1; 51 | consumptiontemp=0; 52 | while Usernum<=Num 53 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomedgenetworks2(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Computenergy,Transmitpower,alfa,Size); 54 | basesearch=0; 55 | deley=0; 56 | for t=1:Usernum 57 | Startsearch(1,t)=basesearch; 58 | basesearch=basesearch+Tasknum(1,t); 59 | end 60 | for i=1:Usernum 61 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 62 | end 63 | Avgdeley(1,Usernum)=deley/Usernum; 64 | Totalconsumption(1,Usernum)=sum(Computeconsumption+Transmitconsumption); 65 | Usernum=Usernum+1; 66 | end 67 | 68 | %one server 69 | Usernum=1; 70 | Avgdeleyonedge=zeros(1,Num); 71 | while Usernum<=Num 72 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomonedge(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Computenergy,Transmitpower,alfa,Size); 73 | basesearch=0; 74 | deley=0; 75 | for t=1:Usernum 76 | Startsearch(1,t)=basesearch; 77 | basesearch=basesearch+Tasknum(1,t); 78 | end 79 | for i=1:Usernum 80 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 81 | end 82 | Avgdeleyonedge(1,Usernum)=deley/Usernum; 83 | Totalconsumptiononedge(1,Usernum)=sum(Computeconsumption+Transmitconsumption); 84 | Usernum=Usernum+1; 85 | end 86 | 87 | 88 | %ton 89 | Usernum=1; 90 | Tasknum=zeros(1,Num)+3; 91 | Nummax=max(Tasknum); 92 | Taskgraph=zeros(Nummax,Nummax,Num); 93 | for k=1:Num 94 | Taskgraph(:,:,k)=Graphgenerateparalel(3,Nummax,1); 95 | end 96 | Computecost=zeros(Nummax,Servernum+1,Num); 97 | Computecost(1:Nummax,1:Servernum,:)=zeros(Nummax,Servernum,Num)+Computetotal/10; 98 | Computecost(1:Nummax,Servernum+1,:)=zeros(Nummax,Num)+Computetotal; 99 | % Computecost(1:Nummax,1:Servernum,:)=rand(Nummax,Servernum,Usernum)*Computetotal/5; 100 | % Computecost(1:Nummax,Servernum+1,:)=rand(Nummax,Usernum)*2*Computetotal; 101 | Computecost(1,:,:)=0; 102 | Computecost(3,:,:)=0; 103 | Transdata=zeros(Nummax,Nummax,Num); 104 | for u=1:Num 105 | Transdata(1,2,u)=25; 106 | Transdata(2,3,u)=5; 107 | end 108 | while Usernum<=Num 109 | [Scheduletotal,Computeconsumption,Transmitconsumption]=globecomedgenetworks2(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Computenergy,Transmitpower,alfa,Size); 110 | basesearch=0; 111 | deley=0; 112 | for t=1:Usernum 113 | Startsearch(1,t)=basesearch; 114 | basesearch=basesearch+Tasknum(1,t); 115 | end 116 | for i=1:Usernum 117 | deley=deley+Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 118 | end 119 | Avgdeleyton(1,Usernum)=deley/Usernum; 120 | Totalconsumptionton(1,Usernum)=sum(Computeconsumption+Transmitconsumption); 121 | Usernum=Usernum+1; 122 | end 123 | plot(1:Num,Totalconsumption); 124 | hold on; 125 | plot(1:Num,Totalconsumptiononedge,'--'); 126 | hold on; 127 | plot(1:Num,Totalconsumptionton); 128 | hold on; 129 | 130 | plot(1:Num,Avgdeley-2*Computetotal/Tasktotal); 131 | hold on; 132 | plot(1:Num,Avgdeleyton,'--'); 133 | hold on; 134 | plot(1:Num,Avgdeleyonedge-2*Computetotal/Tasktotal); 135 | hold on; -------------------------------------------------------------------------------- /Userincreaseuploadnum.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Userincreaseuploadnum.m -------------------------------------------------------------------------------- /Usertaskdiffer.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Usertaskdiffer.m -------------------------------------------------------------------------------- /Userupdatechose.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Userupdatechose.m -------------------------------------------------------------------------------- /Uservote.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/Uservote.m -------------------------------------------------------------------------------- /cpuusage_paralelchange.m: -------------------------------------------------------------------------------- 1 | Usernum=20; 2 | Servernum=2; 3 | Computetotal=1000; 4 | Tasktotal=12; 5 | Tasknum=zeros(1,Usernum)+Tasktotal; 6 | Nummax=max(Tasknum); 7 | Taskgraph=zeros(Nummax,Nummax,Usernum); 8 | Avgdeleymin=zeros(1,Tasktotal-2); 9 | Num=15; 10 | Total=0; 11 | j=1; 12 | Usage=zeros(1,Tasktotal-2); 13 | Iterationnum=100; 14 | User=0; 15 | server=0; 16 | Avgdeley=zeros(1,Iterationnum); 17 | N=0; 18 | for i=1:Usernum 19 | N=N+Tasknum(1,i); 20 | end 21 | cycleindex=1; 22 | Transferrate=(zeros(Servernum+1,Servernum+1,Usernum)+0.1)*40; 23 | for p=1:Usernum 24 | for a=1:Servernum+1 25 | for b=1:Servernum+1 26 | if a<=b 27 | Transferrate(b,a,p)=Transferrate(a,b,p); 28 | end 29 | end 30 | end 31 | end 32 | Comstartup=(zeros(1,Servernum+Usernum)+0.1)*1; 33 | Transdata=(zeros(Nummax,Nummax,Usernum)+0.5/Tasktotal)*50; 34 | while cycleindex<=Tasktotal-2 35 | while j<=Num 36 | Computecost=zeros(Nummax,Servernum+1,Usernum); 37 | Computecost(1:Nummax,1:Servernum,:)=rand(Nummax,Servernum,Usernum)*Computetotal/Tasktotal/5; 38 | Computecost(1:Nummax,Servernum+1,:)=rand(Nummax,Usernum)*2*Computetotal/Tasktotal; 39 | paralelconst=cycleindex; 40 | for k=1:Usernum 41 | Taskgraph(:,:,k)=Graphgenerateparalel(Tasktotal,Nummax,paralelconst); 42 | end 43 | [Schedule,Channel,Avgdeley,Usercurrent,avgdeleymin,point,Timeslot,Timeslotlast]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 44 | Total=Total+CPUusage(Servernum,Schedule(:,((Iterationnum-1)*N+1):N*Iterationnum,1:Servernum),N,Timeslot,Timeslotlast); 45 | j=j+1; 46 | end 47 | Usage(1,cycleindex)=Total/Num; 48 | Total=0; 49 | j=1; 50 | cycleindex=cycleindex+1; 51 | end 52 | plot(1:Tasktotal-2,Usage); -------------------------------------------------------------------------------- /cpuusage_tasknumchange.m: -------------------------------------------------------------------------------- 1 | Usernum=30; 2 | Servernum=2; 3 | Computetotal=150; 4 | Num=60; 5 | Usage=zeros(1,Num); 6 | Iterationnum=100; 7 | User=0; 8 | server=0; 9 | Avgdeley=zeros(1,Iterationnum); 10 | tasknum=1; 11 | Transferrate=(zeros(Servernum+1,Servernum+1,Usernum)+0.1)*40; 12 | for p=1:Usernum 13 | for a=1:Servernum+1 14 | for b=1:Servernum+1 15 | if a<=b 16 | Transferrate(b,a,p)=Transferrate(a,b,p); 17 | end 18 | end 19 | end 20 | end 21 | Transferrateini=Transferrate; 22 | Comstartup=(zeros(1,Num+Usernum)+0.1)*1; 23 | Local=zeros(1,Usernum)+Servernum+1; 24 | Channel=zeros(Usernum,Servernum); 25 | Q=Usernum+Servernum; 26 | while tasknum<=Num 27 | paralelconst=max(tasknum-2,1); 28 | Tasknum=zeros(1,Usernum)+tasknum; 29 | Nummax=max(Tasknum); 30 | Taskgraph=zeros(Nummax,Nummax,Usernum); 31 | for k=1:Usernum 32 | Taskgraph(:,:,k)=Graphgenerateparalel(tasknum,Nummax,paralelconst); 33 | end 34 | N=0; 35 | for i=1:Usernum 36 | N=N+Tasknum(1,i); 37 | end 38 | Transdata=(zeros(Nummax,Nummax,Usernum)+0.5/tasknum)*50; 39 | Computecost=zeros(Nummax,Servernum+1,Usernum); 40 | Computecost(1:Nummax,1:Servernum,:)=zeros(Nummax,Servernum,Usernum)+Computetotal/tasknum/10; 41 | Computecost(1:Nummax,Servernum+1,:)=zeros(Nummax,Usernum)+Computetotal/tasknum; 42 | [Schedule,Channel,Avgdeley,Usercurrent,avgdeleymin,point,Timeslot,Timeslotlast]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 43 | Usage(1,tasknum)=CPUusage(Servernum,Schedule(:,((Iterationnum-1)*N+1):N*Iterationnum,1:Servernum),N,Timeslot,Timeslotlast); 44 | tasknum=tasknum+1; 45 | end 46 | plot(1:Num,Usage); -------------------------------------------------------------------------------- /cpuusage_userincrease.m: -------------------------------------------------------------------------------- 1 | Usernum=1; 2 | Servernum=2; 3 | Num=70; 4 | Usage=zeros(1,Num); 5 | Tasknum=zeros(1,Num)+10; 6 | Nummax=max(Tasknum); 7 | Iterationnum=100; 8 | Avgdeley=zeros(1,Iterationnum); 9 | Computetotal=150; 10 | Tasktotal=Nummax; 11 | N=0; 12 | for i=1:Usernum 13 | N=N+Tasknum(1,i); 14 | end 15 | Taskgraph=zeros(Nummax,Nummax,Num); 16 | %Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 17 | Taskgraph(:,:,1)=Graphgenerateparalel(Nummax,Nummax,Nummax-2); 18 | for p=2:Num 19 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 20 | end 21 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 22 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 23 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 24 | %Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 25 | Transdata=(zeros(Nummax,Nummax,Num)+0.3)*30; 26 | Computecost=zeros(Nummax,Servernum+1,Num); 27 | Computecost(1:Nummax,1:Servernum,:)=zeros(Nummax,Servernum,Num)+Computetotal/Tasktotal/10; 28 | Computecost(1:Nummax,Servernum+1,:)=zeros(Nummax,Num)+Computetotal/Tasktotal; 29 | Transferrate=(zeros(Servernum+1,Servernum+1,Num)+0.3)*50; 30 | for p=1:Num 31 | for a=1:Servernum+1 32 | for b=1:Servernum+1 33 | if a<=b 34 | Transferrate(b,a,p)=Transferrate(a,b,p); 35 | end 36 | end 37 | end 38 | end 39 | Comstartup=(zeros(1,Servernum+Num)+0.1)*3; 40 | %Local=zeros(1,Num)+Servernum+1; 41 | while Usernum<=Num 42 | [Schedule,Channel,Avgdeley,Usercurrent,avgdeleymin,point,Timeslot,Timeslotlast]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 43 | N=0; 44 | for i=1:Usernum 45 | N=N+Tasknum(1,i); 46 | end 47 | Usage(1,Usernum)=CPUusage(Servernum,Schedule(:,((Iterationnum-1)*N+1):N*Iterationnum,1:Servernum),N,Timeslot,Timeslotlast); 48 | Usernum=Usernum+1; 49 | end 50 | plot(1:Num,Usage); -------------------------------------------------------------------------------- /equal.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/equal.m -------------------------------------------------------------------------------- /globecomedgenetworks.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/globecomedgenetworks.m -------------------------------------------------------------------------------- /globecomedgenetworks2.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/globecomedgenetworks2.m -------------------------------------------------------------------------------- /globecomonedge.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/globecomonedge.m -------------------------------------------------------------------------------- /globecomtemp.m: -------------------------------------------------------------------------------- 1 | Usernum=50; 2 | Servernum=10; 3 | Tasknum=zeros(1,Usernum)+10; 4 | %Tasknum(1,2)=1; 5 | %Tasknum(1,2)=2; 6 | Tasknum(1,2)=3; 7 | Nummax=max(Tasknum); 8 | N=0; 9 | for k=1:Usernum 10 | N=N+Tasknum(1,k); 11 | end 12 | Q=Servernum+Usernum; 13 | Local=zeros(1,Usernum)+Servernum+1; 14 | Taskgraph=zeros(Nummax,Nummax,Usernum); 15 | Taskgraph(:,:,1)=[0,-1,-1,-1,-1,-1,0,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,-1,0,0,0;1,0,0,0,0,0,0,-1,-1,0;1,0,0,0,0,0,0,0,-1,0;1,0,0,0,0,0,0,-1,0,0;0,0,1,0,0,0,0,0,0,-1;0,1,0,1,0,1,0,0,0,-1;0,1,0,1,1,0,0,0,0,-1;0,0,0,0,0,0,1,1,1,0]'; 16 | for p=3:Usernum 17 | Taskgraph(:,:,p)=Taskgraph(:,:,1); 18 | end 19 | %Taskgraph(:,:,2)=[0,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 20 | %Taskgraph(:,:,2)=[0,1,-2,-2,-2,-2,-2,-2,-2,-2;-1,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 21 | %Taskgraph(:,:,2)=[0,0,-2,-2,-2,-2,-2,-2,-2,-2;0,0,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 22 | Taskgraph(:,:,2)=[0,1,0,-2,-2,-2,-2,-2,-2,-2;-1,0,1,-2,-2,-2,-2,-2,-2,-2;0,-1,0,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2;-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]; 23 | Transdata=rand(Nummax,Nummax,Usernum)*30; 24 | Computecost=rand(Nummax,Servernum+1,Usernum)*50; 25 | Transferrate=rand(Servernum+1,Servernum+1,Usernum)*50; 26 | for p=1:Usernum 27 | for a=1:Servernum+1 28 | for b=1:Servernum+1 29 | if a<=b 30 | Transferrate(b,a,p)=Transferrate(a,b,p); 31 | end 32 | end 33 | end 34 | end 35 | Comstartup=rand(1,Q)*3; 36 | Computenergy=zeros(1,Usernum)+0.2; 37 | Transmitpower=zeros(1,Usernum)+0.2; 38 | alfa=zeros(1,Usernum)+0.5; 39 | Size=zeros(Usernum,Nummax)+1; 40 | [Scheduletotal]=globecomedgenetworks(Usernum,Servernum,Local,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Computenergy,Transmitpower,alfa,Size); 41 | Deley=zeros(1,Usernum); 42 | basesearch=0; 43 | for t=1:Usernum 44 | Startsearch(1,t)=basesearch; 45 | basesearch=basesearch+Tasknum(1,t); 46 | end 47 | for i=1:Usernum 48 | Deley(1,i)=Scheduletotal(2,Startsearch(1,i)+Tasknum(1,i),Servernum+i)-Scheduletotal(1,Startsearch(1,i)+1,Servernum+i); 49 | end 50 | Avgdeley=mean(Deley); 51 | Avgdeleyarray=zeros(1,100)+Avgdeley; 52 | plot(1:100,Avgdeley,'--'); 53 | hold on; -------------------------------------------------------------------------------- /paralel_serial_compare.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/paralel_serial_compare.m -------------------------------------------------------------------------------- /parallelchange.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/parallelchange.m -------------------------------------------------------------------------------- /parallelchange2.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/parallelchange2.m -------------------------------------------------------------------------------- /schedule.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mobinets/edgeOffloadSim/1a65e77306468891b61c8538cc858d20fa25d464/schedule.m -------------------------------------------------------------------------------- /tasknumchangebutcomputeconst.m: -------------------------------------------------------------------------------- 1 | Usernum=20; 2 | Servernum=2; 3 | Computetotal=100; 4 | Num=50; 5 | Avgdeleymin=zeros(1,Num); 6 | Iterationnum=100; 7 | User=0; 8 | server=0; 9 | Avgdeley=zeros(1,Iterationnum); 10 | tasknum=1; 11 | Transferrate=(zeros(Servernum+1,Servernum+1,Usernum)+0.1)*40; 12 | for p=1:Usernum 13 | for a=1:Servernum+1 14 | for b=1:Servernum+1 15 | if a<=b 16 | Transferrate(b,a,p)=Transferrate(a,b,p); 17 | end 18 | end 19 | end 20 | end 21 | Transferrateini=Transferrate; 22 | Comstartup=(zeros(1,Num+Usernum)+0.1)*1; 23 | Local=zeros(1,Usernum)+Servernum+1; 24 | Channel=zeros(Usernum,Servernum); 25 | Q=Usernum+Servernum; 26 | while tasknum<=Num 27 | paralelconst=max(tasknum-2,1); 28 | Tasknum=zeros(1,Usernum)+tasknum; 29 | Nummax=max(Tasknum); 30 | Taskgraph=zeros(Nummax,Nummax,Usernum); 31 | for k=1:Usernum 32 | Taskgraph(:,:,k)=Graphgenerateparalel(tasknum,Nummax,paralelconst); 33 | end 34 | Transdata=(zeros(Nummax,Nummax,Usernum)+0.5/tasknum)*50; 35 | Computecost=zeros(Nummax,Servernum+1,Usernum); 36 | Computecost(1:Nummax,1:Servernum,:)=zeros(Nummax,Servernum,Usernum)+Computetotal/tasknum/10; 37 | Computecost(1:Nummax,Servernum+1,:)=zeros(Nummax,Usernum)+Computetotal/tasknum; 38 | [Schedule,Channel,Avgdeley,Usercurrent,avgdeleymin,point,~,~]=Game(Usernum,Servernum,Taskgraph,Tasknum,Transdata,Computecost,Transferrate,Comstartup,Iterationnum); 39 | Avgdeleymin(1,tasknum)=min([Avgdeley(1,Iterationnum),Avgdeley(1,Iterationnum-1)]); 40 | tasknum=tasknum+1; 41 | end 42 | plot(1:Num,Avgdeleymin); --------------------------------------------------------------------------------