Параллельная установка GNU в командной строке Unix
У меня есть программа переменного тока, которая принимает ввод через стандартный ввод main(argc) или ввод через вызов scanf().
Он настроен так, что если нет подходящего стандартного ввода, он использует вызовы scanf() для запроса ввода.
Я пытаюсь использовать GNU параллельно для запуска нескольких версий этой программы с различными значениями ввода. Программа принимает 2 целых числа в качестве входных данных, например:
printf("\nEnter Start Line (0 for first line) :");
scanf ("%d",&startline);
printf("\nEnter End Line:");
scanf ("%d",&endline);
Входные данные также будут инкрементными, поэтому, если входные данные для первого файла были 0 10, то для второго входного файла будет 10 20, третий файл 20 30 и т. Д.
Я просто испытываю трудности с построением правильного вызова, чтобы осуществить то, что я хочу. У кого-нибудь есть мысли по этому поводу?
Спасибо
1 ответ
Итак, ваша программа читает из STDIN, и вы хотите, чтобы входные данные были разделены на две строки, каждая из которых передается вашей программе:
cat your_input | parallel --pipe -N2 your_program
Пример:
seq 10 | parallel --pipe -N2 echo "NEW"\; cat
Проведите час, прогуливаясь по учебнику. Ваша командная строка будет любить вас за это. http://www.gnu.org/software/parallel/parallel_tutorial.html