Changeset 6398
- Timestamp:
- 06/08/11 15:52:16 (14 years ago)
- Location:
- branches/MPI
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/MPI/HeuristicLab.MPIAlgorithmRunner/3.3/AlgorithmBroker.cs
r6394 r6398 58 58 quotas.MaxArrayLength = int.MaxValue; 59 59 netTCPBinding.ReaderQuotas = quotas; 60 netTCPBinding.SendTimeout = new TimeSpan(100000000); 61 netTCPBinding.ReceiveTimeout = new TimeSpan(100000000); 60 62 endpoint.Binding = netTCPBinding; 61 63 int port = FindFreeTcpPort(); … … 90 92 #region IAlgorithmBroker Members 91 93 92 public void TransmitAlgorithm(MPITransportWrapper<IAlgorithm> algorithm ) {94 public void TransmitAlgorithm(MPITransportWrapper<IAlgorithm> algorithm, int updateInterval) { 93 95 Console.WriteLine("Transmitting Algorithm..."); 94 96 int clients = MPI.Communicator.world.Group.Size - 1; … … 97 99 int client = i + 1; 98 100 communicator.Send<MPITransportWrapper<IAlgorithm>>(algorithm, client, 0); 101 communicator.Send<int>(updateInterval, client, 1); 99 102 } 100 103 } -
branches/MPI/HeuristicLab.MPIAlgorithmRunner/3.3/IAlgorithmBroker.cs
r6388 r6398 33 33 public interface IAlgorithmBroker { 34 34 [OperationContract] 35 void TransmitAlgorithm(MPITransportWrapper<IAlgorithm> algorithm );35 void TransmitAlgorithm(MPITransportWrapper<IAlgorithm> algorithm, int updateInterval); 36 36 37 37 [OperationContract] -
branches/MPI/HeuristicLab.MPIAlgorithmRunner/3.3/Program.cs
r6394 r6398 68 68 Console.WriteLine("Clients: " + clients); 69 69 70 int updateInterval = 5000;71 72 70 MPI.Communicator communicator = MPI.Communicator.world.Clone() as MPI.Communicator; 73 71 … … 119 117 } else { 120 118 Program p = new Program(); 121 p.StartAlgorithm( updateInterval,communicator);119 p.StartAlgorithm(communicator); 122 120 } 123 121 } 124 122 } 125 123 126 public void StartAlgorithm( int updateInterval,MPI.Communicator communicator) {124 public void StartAlgorithm(MPI.Communicator communicator) { 127 125 IAlgorithm alg = communicator.Receive<MPITransportWrapper<IAlgorithm>>(0, 0).InnerItem; 126 int updateInterval = communicator.Receive<int>(0, 1); 128 127 129 128 Console.WriteLine("Starting algorithm..."); -
branches/MPI/HeuristicLab.MPIEngine/3.3/HeuristicLab.MPIEngine-3.3.csproj
r6394 r6398 110 110 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Common-3.3.dll</HintPath> 111 111 </Reference> 112 <Reference Include="HeuristicLab.Common.Resources-3.3"> 113 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Common.Resources-3.3.dll</HintPath> 114 </Reference> 112 115 <Reference Include="HeuristicLab.Core-3.3"> 113 116 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath> 114 117 </Reference> 118 <Reference Include="HeuristicLab.Core.Views-3.3"> 119 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Core.Views-3.3.dll</HintPath> 120 </Reference> 121 <Reference Include="HeuristicLab.MainForm-3.3"> 122 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.MainForm-3.3.dll</HintPath> 123 </Reference> 124 <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3"> 125 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath> 126 </Reference> 115 127 <Reference Include="HeuristicLab.Optimization-3.3"> 116 128 <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Optimization-3.3.dll</HintPath> … … 133 145 <Reference Include="System" /> 134 146 <Reference Include="System.Core" /> 147 <Reference Include="System.Drawing" /> 135 148 <Reference Include="System.Runtime.Serialization" /> 136 149 <Reference Include="System.ServiceModel" /> 150 <Reference Include="System.Windows.Forms" /> 137 151 <Reference Include="System.Xml.Linq" /> 138 152 <Reference Include="System.Data.DataSetExtensions" /> … … 141 155 </ItemGroup> 142 156 <ItemGroup> 157 <Compile Include="MPIEngineView.cs"> 158 <SubType>UserControl</SubType> 159 </Compile> 160 <Compile Include="MPIEngineView.designer.cs"> 161 <DependentUpon>MPIEngineView.cs</DependentUpon> 162 </Compile> 143 163 <Compile Include="HeuristicLabMPIEnginePlugin.cs" /> 144 164 <Compile Include="Properties\AssemblyInfo.cs" /> -
branches/MPI/HeuristicLab.MPIEngine/3.3/HeuristicLabMPIEnginePlugin.cs.frame
r6388 r6398 33 33 [PluginDependency("HeuristicLab.Collections", "3.3")] 34 34 [PluginDependency("HeuristicLab.Common", "3.3")] 35 [PluginDependency("HeuristicLab.Common.Resources", "3.3")] 35 36 [PluginDependency("HeuristicLab.Core", "3.3")] 37 [PluginDependency("HeuristicLab.Core.Views", "3.3")] 38 [PluginDependency("HeuristicLab.MainForm", "3.3")] 39 [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 36 40 [PluginDependency("HeuristicLab.MPInet", "1.0.0")] 37 41 [PluginDependency("HeuristicLab.MPIAlgorithmRunner", "3.3")] -
branches/MPI/HeuristicLab.MPIEngine/3.3/MPIEngine.cs
r6395 r6398 37 37 using Microsoft.Hpc.Scheduler.Properties; 38 38 using System.Xml; 39 using System.ComponentModel; 39 40 40 41 namespace HeuristicLab.MPIEngine { … … 47 48 public class MPIEngine : Engine { 48 49 private string username; 50 51 [Category("MPISettings")] 52 [Browsable(true)] 53 public string UserName { 54 get { 55 return username; 56 } 57 58 set { 59 username = value; 60 } 61 } 62 49 63 private string password; 50 64 65 [Category("MPISettings")] 66 [Browsable(true)] 67 [PasswordPropertyText(true)] 68 public string Password { 69 get { 70 return password; 71 } 72 73 set { 74 password = value; 75 } 76 } 77 51 78 [Storable] 52 79 private string headNode; 53 80 81 [Category("MPISettings")] 82 [Browsable(true)] 83 public string HeadNode { 84 get { 85 return headNode; 86 } 87 88 set { 89 headNode = value; 90 } 91 } 92 54 93 [Storable] 55 94 private string path; 56 95 96 [Category("MPISettings")] 97 [Browsable(true)] 98 public string Path { 99 get { 100 return path; 101 } 102 103 set { 104 path = value; 105 } 106 } 107 108 [Storable] 109 private int updateInterval; 110 111 [Category("MPISettings")] 112 [Browsable(true)] 113 public int UpdateInterval { 114 get { 115 return updateInterval; 116 } 117 118 set { 119 updateInterval = value; 120 } 121 } 122 57 123 [Storable] 58 124 private int cpuPerNode; 59 125 126 [Category("MPISettings")] 127 [Browsable(true)] 128 public int CpuPerNode { 129 get { 130 return cpuPerNode; 131 } 132 133 set { 134 cpuPerNode = value; 135 } 136 } 137 60 138 [Storable] 61 139 private List<string> requestedNodes; 140 141 [Category("MPISettings")] 142 [Browsable(true)] 143 public List<string> RequestedNodes { 144 get { 145 return requestedNodes; 146 } 147 148 set { 149 requestedNodes = value; 150 } 151 } 62 152 63 153 [StorableConstructor] … … 69 159 headNode = original.headNode; 70 160 path = original.path; 161 updateInterval = original.updateInterval; 71 162 cpuPerNode = original.cpuPerNode; 72 163 requestedNodes = new List<string>(); … … 80 171 headNode = "blade00.hpc.fh-hagenberg.at"; 81 172 path = @"C:\public\MPISupport"; 82 cpuPerNode = 8; 173 updateInterval = 5000; 174 cpuPerNode = 3; 83 175 requestedNodes = new List<string>(); 84 176 requestedNodes.Add("BLADE00"); … … 172 264 netTCPBinding.ReaderQuotas = quotas; 173 265 netTCPBinding.MaxReceivedMessageSize = int.MaxValue; 266 netTCPBinding.SendTimeout = new TimeSpan(100000000); 267 netTCPBinding.ReceiveTimeout = new TimeSpan(100000000); 174 268 ChannelFactory<IAlgorithmBroker> factory = new ChannelFactory<IAlgorithmBroker>(netTCPBinding, address); 175 269 IAlgorithmBroker proxy = factory.CreateChannel(); 176 270 177 proxy.TransmitAlgorithm(new MPITransportWrapper<IAlgorithm>(algorithm) );271 proxy.TransmitAlgorithm(new MPITransportWrapper<IAlgorithm>(algorithm), updateInterval); 178 272 179 273 while (!proxy.IsAlgorithmTerminated()) { … … 191 285 } 192 286 193 System.Threading.Thread.Sleep( 5000);287 System.Threading.Thread.Sleep(updateInterval); 194 288 } 195 289 }
Note: See TracChangeset
for help on using the changeset viewer.