diff --git a/Distribute_computing/ComputingServices.sln b/Distribute_computing/ComputingServices.sln index 1b79bf6..a357cf6 100644 --- a/Distribute_computing/ComputingServices.sln +++ b/Distribute_computing/ComputingServices.sln @@ -37,6 +37,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Network.GraphTheory", "..\. EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MLDebugger", "..\..\sciBASIC#\Data_science\MachineLearning\MLDebugger\MLDebugger.vbproj", "{CCBF36AB-506D-48A2-9150-A3762D4120EC}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "thinking", "thinking\thinking.vbproj", "{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Biodeep_UNIX_x64|Any CPU = Biodeep_UNIX_x64|Any CPU @@ -694,8 +696,8 @@ Global {44396667-3358-4529-BC45-722CD0CD3997}.Biostack-Debug|x86.Build.0 = Debug|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x64.ActiveCfg = Debug|Any CPU - {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x64.Build.0 = Debug|Any CPU + {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x64.ActiveCfg = Debug|x64 + {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x64.Build.0 = Debug|x64 {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x86.ActiveCfg = Debug|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Debug|x86.Build.0 = Debug|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.DEMO|Any CPU.ActiveCfg = Debug|Any CPU @@ -754,8 +756,8 @@ Global {44396667-3358-4529-BC45-722CD0CD3997}.Publish|x86.Build.0 = Release|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Release|Any CPU.ActiveCfg = Release|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Release|Any CPU.Build.0 = Release|Any CPU - {44396667-3358-4529-BC45-722CD0CD3997}.Release|x64.ActiveCfg = Release|Any CPU - {44396667-3358-4529-BC45-722CD0CD3997}.Release|x64.Build.0 = Release|Any CPU + {44396667-3358-4529-BC45-722CD0CD3997}.Release|x64.ActiveCfg = Release|x64 + {44396667-3358-4529-BC45-722CD0CD3997}.Release|x64.Build.0 = Release|x64 {44396667-3358-4529-BC45-722CD0CD3997}.Release|x86.ActiveCfg = Release|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.Release|x86.Build.0 = Release|Any CPU {44396667-3358-4529-BC45-722CD0CD3997}.sciBASIC.NET-test-release|Any CPU.ActiveCfg = Release|Any CPU @@ -1808,6 +1810,120 @@ Global {CCBF36AB-506D-48A2-9150-A3762D4120EC}.Yilia-Release_x64|x64.Build.0 = Release|x64 {CCBF36AB-506D-48A2-9150-A3762D4120EC}.Yilia-Release_x64|x86.ActiveCfg = Release|Any CPU {CCBF36AB-506D-48A2-9150-A3762D4120EC}.Yilia-Release_x64|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep_UNIX_x64|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biodeep|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|Any CPU.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|x64.ActiveCfg = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|x64.Build.0 = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|x86.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Biostack-Debug|x86.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|x64.ActiveCfg = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|x64.Build.0 = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|x86.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Debug|x86.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|Any CPU.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|Any CPU.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|x64.ActiveCfg = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|x64.Build.0 = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|x86.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.DEMO|x86.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|Any CPU.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|Any CPU.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|x64.ActiveCfg = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|x64.Build.0 = Debug|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|x86.ActiveCfg = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.docs|x86.Build.0 = Debug|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(Release_X64)|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GCModeller(UNIX-Release_X64)|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.GTA5-game-test|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.installer_x64|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Publish|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Release|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.sciBASIC.NET-test-release|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Surveillance-of-infectious-diseases|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.WebAssembly|x86.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|Any CPU.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|Any CPU.Build.0 = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|x64.ActiveCfg = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|x64.Build.0 = Release|x64 + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|x86.ActiveCfg = Release|Any CPU + {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.Yilia-Release_x64|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb b/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb index 625b711..e671265 100644 --- a/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb +++ b/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb @@ -1,7 +1,13 @@ -Imports Microsoft.VisualBasic.ApplicationServices.Plugin +Imports System.IO +Imports System.Runtime.CompilerServices +Imports Microsoft.VisualBasic.ApplicationServices.Plugin Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel Imports Microsoft.VisualBasic.MachineLearning.Darwinism.Models Imports Microsoft.VisualBasic.MachineLearning.Darwinism.NonlinearGridTopology +Imports Microsoft.VisualBasic.Net.Http +Imports Microsoft.VisualBasic.Parallel.Tasks +Imports Microsoft.VisualBasic.Serialization.JSON +Imports sciBASIC.ComputingServices.TaskHost Public Module CalculateFitness @@ -13,10 +19,42 @@ Public Module CalculateFitness ' 在这里folk出多条进程进行并行计算 ' 这个方法可以极大的提升程序在Linux平台上面的计算效率 + Dim compute As [Delegate] = New Func(Of String, String, NamedValue(Of Double)())(AddressOf SlaveProcess) + Dim endPoint As String = Base64Codec.Base64String(InvokeInfo.CreateObject(compute, {}).GetJson) + Dim slave = CLI.thinking.FromEnvironment(App.HOME) + Dim folks As New List(Of AsyncHandle(Of Integer)) + Dim trainingSet = DirectCast(comparator.evaluateFitness, Environment) _ + .GetTrainingSet() _ + .writeMemory + For Each block As Genome() In partitions + ' 将数据写入内存 + Dim inputs = block.Select(Function(g) g.CreateSnapshot()) + Next End Function - Public Function DistributionComputing() + + Private Function writeMemory(Of T)(dataset As T) As String + Dim ref$ = App.GetNextUniqueName($"memory://GA_dataset/{App.PID}_") + + Using writer As New StreamWriter(CommandLine.OpenForWrite(ref)) + Call writer.WriteLine(dataset.GetJson) + End Using + + Return ref + End Function + ''' + ''' 这个函数输入的两个参数都是内存文件的引用位置 + ''' + ''' + ''' + ''' + Public Function SlaveProcess(genomes$, trainingSet$) As NamedValue(Of Double)() + + End Function + + Public Function DistributionComputing() + Throw New NotImplementedException End Function End Module diff --git a/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj b/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj index 2185c25..72ada89 100644 --- a/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj +++ b/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj @@ -43,6 +43,27 @@ On + + true + true + true + bin\x64\Debug\ + GridDynamics_plugins.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full + x64 + MinimumRecommendedRules.ruleset + + + true + bin\x64\Release\ + GridDynamics_plugins.xml + true + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x64 + MinimumRecommendedRules.ruleset + @@ -80,6 +101,7 @@ Settings.settings True + diff --git a/Distribute_computing/GridDynamics_plugins/thinking.vb b/Distribute_computing/GridDynamics_plugins/thinking.vb new file mode 100644 index 0000000..242604c --- /dev/null +++ b/Distribute_computing/GridDynamics_plugins/thinking.vb @@ -0,0 +1,77 @@ +Imports System.Runtime.CompilerServices +Imports System.Text +Imports Microsoft.VisualBasic.CommandLine +Imports Microsoft.VisualBasic.CommandLine.InteropService +Imports Microsoft.VisualBasic.ApplicationServices + +' Microsoft VisualBasic CommandLine Code AutoGenerator +' assembly: ..\Release\thinking.exe + +' +' // +' // +' // +' // VERSION: 1.0.0.0 +' // COPYRIGHT: Copyright © 2019 +' // GUID: 122d95f7-d875-4ee8-92b2-2fdbfdaa2261 +' // +' +' +' < thinking.CLI > +' +' +' SYNOPSIS +' thinking command [/argument argument-value...] [/@set environment-variable=value...] +' +' All of the command that available in this program has been list below: +' +' /slave: Program running in slave mode, apply for the multiple-process parallel. +' +' +' ---------------------------------------------------------------------------------------------------- +' +' 1. You can using "thinking ??" for getting more details command help. +' 2. Using command "thinking /CLI.dev [---echo]" for CLI pipeline development. +' 3. Using command "thinking /i" for enter interactive console mode. + +Namespace CLI + + +''' +''' thinking.CLI +''' +''' +Public Class thinking : Inherits InteropService + + Public Const App$ = "thinking.exe" + + Sub New(App$) + MyBase._executableAssembly = App$ + End Sub + + + Public Shared Function FromEnvironment(directory As String) As thinking + Return New thinking(App:=directory & "/" & thinking.App) + End Function + +''' +''' ``` +''' /slave /application <json_base64> /arguments <memory_mapfile> /out <memory_mapfile> +''' ``` +''' Program running in slave mode, apply for the multiple-process parallel. +''' +''' +Public Function Slave(application As String, arguments As String, out As String) As Integer + Dim CLI As New StringBuilder("/slave") + Call CLI.Append(" ") + Call CLI.Append("/application " & """" & application & """ ") + Call CLI.Append("/arguments " & """" & arguments & """ ") + Call CLI.Append("/out " & """" & out & """ ") + Call CLI.Append("/@set --internal_pipeline=TRUE ") + + + Dim proc As IIORedirectAbstract = RunDotNetApp(CLI.ToString()) + Return proc.Run() +End Function +End Class +End Namespace diff --git a/Distribute_computing/thinking/CLI.vb b/Distribute_computing/thinking/CLI.vb index 8686127..47ffd70 100644 --- a/Distribute_computing/thinking/CLI.vb +++ b/Distribute_computing/thinking/CLI.vb @@ -29,10 +29,9 @@ Imports sciBASIC.ComputingServices.TaskHost ''' - /arguments /out ")> + /out ")> Public Function Slave(args As CommandLine) As Integer Dim endpointJSON$ = args("/application").Base64Decode - Dim parametersJSON$ = args.OpenStreamInput("/arguments").ReadToEnd ' 在slave模式下,不会产生任何在终端上的信息输出 VBDebugger.Mute = True diff --git a/Distribute_computing/thinking/thinking.vbproj b/Distribute_computing/thinking/thinking.vbproj index 831591f..106fcd4 100644 --- a/Distribute_computing/thinking/thinking.vbproj +++ b/Distribute_computing/thinking/thinking.vbproj @@ -131,11 +131,11 @@ - + {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} 47-dotnet_Microsoft.VisualBasic - + {87383048-1b31-49b7-9fb7-0ded1b80ace8} ComputingServices