С Новым годом! Форум программистов, компьютерный форум, киберфорум
MPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 8
1

Запуск MPI программ

06.11.2016, 22:55. Показов 1575. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, форумчане. Для учебы было написано 7 программ на C++ с использованием MPICH. Для анализа производительности этих программ было принято решение запускать каждую программу с различными параметрами: первый - кол-во потоков, второй - размер массива данных, с которым работает каждый поток. Написал программу на C#, которая запускает программы из списка с необходимыми параметрами. Запуск этих программ производится через программу mpiexec.exe, у него есть возможность вывода результата в файл, то есть если я вызову такую команду: mpiexec -localonly 2 test.exe > ResultTest.txt, то результат выполнения программы test.exe запишется в файл ResultTest.txt. Проблема заключается в том, что с таким параметром программа не создает файл с результатом выполнения. Если же сгенерированную команду вставить в командную строку и выполнить, то файл создастся. Не могу разобраться в чем причина. (все запускал от имени администратора, но не помогло).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void btnProcessStart_Click(object sender, EventArgs e)
        {
            var resultFolder = ProgramsFolder + "\\Result";
            if (!Directory.Exists(resultFolder))
                Directory.CreateDirectory(resultFolder);
            foreach (var index in lbFilesInFolder.SelectedIndices){
                var mpiProject = new Process();
                mpiProject.StartInfo.WorkingDirectory = MpichFolder;
                mpiProject.StartInfo.FileName = "mpiexec.exe";
                mpiProject.StartInfo.Arguments = " " + cbMPIParamentres.Text + " " + 1 + " "" +
                    Directory.GetFiles(ProgramsFolder)[(int)index] + "" 100 > "" +
                    resultFolder + "\\Result.txt"";
 
                mmLog.Text = mpiProject.StartInfo.WorkingDirectory + @"" + mpiProject.StartInfo.FileName + mpiProject.StartInfo.Arguments;
                try
                {
                    mpiProject = Process.Start(mpiProject.StartInfo);
                }
                catch (Exception exception){
                    MessageBox.Show(exception.Message);
                    break;
                }
                if (mpiProject != null){
                    mpiProject.WaitForExit();
                    if (mpiProject.HasExited)
                    {
                        //Обработка файла с результатом выполнения
                    }
                    mpiProject.Dispose();
                }
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2016, 22:55
Ответы с готовыми решениями:

Запуск программ от имени системы
Всем привет, возник такой вопрос как запустить программно программу от имени системы при помощи c#?...

Запуск двух программ одновременно
Есть код открывающий одновременно два файла using System; using System.Diagnostics; namespace...

запуск программ службой windows на c#
Всем добрый вечер. Не могу решить проблему: Есть консольная прога на c#, которая должна...

Не работает отладка и запуск программ, MS Visual C#
Здравствуйте! Возникла такая проблема. Не работает запуск и отладка программы из MS Visual C#...

3
Эксперт .NET
6510 / 4086 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
06.11.2016, 22:59 2
Используйте перенаправление стандартного вывода и пишите в файл сами. Перенаправление вывода в файл (> file.txt) работает только в командной строке, поэтому смысла его использовать при запуске из в C# нет.

ProcessStartInfo.RedirectStandardOutput
https://www.dotnetperls.com/redirectstandardoutput
1
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 8
06.11.2016, 23:03  [ТС] 3
Большое спасибо!
0
Администратор
Эксперт .NET
17709 / 13836 / 5313
Регистрация: 17.03.2014
Сообщений: 28,343
Записей в блоге: 1
07.11.2016, 00:07 4
Sefihan, см. Выполнение команды net use с перенаправлением вывода
0
07.11.2016, 00:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2016, 00:07
Помогаю со студенческими работами здесь

Поиск установленных программ и запуск одной из них
собсно весь вопрос в заголовке темы: нужно вытащить все установленные программы и запускать любую...

Как программно запретить через реестр запуск любых программ
Здравствуйте, можете подсказать как программно запретить через реестр запуск любых программ?

Запуск программ из консоли
Как открыть из консоли вторую консоль, или exe файл...

Запуск программ в программе
Здравствуйте, друзья! Мне нужно чтобы программа запускала на C# запускала другую программу. Я знаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru