Example #1
0
 private static void RunFullVersion(ForwardProject project)
 {
     using (var mpi_world = Mpi.Init()) {
         var mpi = mpi_world.Dup();
         using (var memoryProvider = new FftWMemoryProvider()) {
             using (var runner = new ExtremeMtSolverRunner(project, memoryProvider, mpi)) {
                 var model = ModelGenUtils.LoadCartesianModel(project.ModelFile, mpi);
                 runner.Run(model);
             }
         }
         mpi.Dispose();
     }
 }
Example #2
0
        public ExtremeMtSolverRunner(ForwardProject project, INativeMemoryProvider memoryProvider, Mpi mpi = null)
        {
            if (project == null)
            {
                throw new ArgumentNullException(nameof(project));
            }
            if (memoryProvider == null)
            {
                throw new ArgumentNullException(nameof(memoryProvider));
            }

            _project        = project;
            _memoryProvider = memoryProvider;
            _mpi            = mpi;
            _logger         = (_mpi == null || !_mpi.IsParallel) ?
                              (ILogger) new ConsoleLogger() :
                              new ParallelConsoleLogger(_mpi);

            _solver = new Mt3DForwardSolver(_logger, memoryProvider, _project.ForwardSettings);
            _solver.SetProfiler(_profiler);
        }