LINUX.ORG.RU

одновременное выполнение программ


0

1

Не могло бы уважаемое сообщество подсказать способ одновременного запуска двух программ. Возможно скрипт который откроет сразу два терминалаи одновременно запустит там по процессу. Было бы здорово ресурс какой ни будь изучить. Спасибо!


взять и запустить, в чем проблема? О чем речь? bash? C?

abs ★★★
()

Щелкаем по иконке, которая запускает терминал. Щелкаем по ней ещё раз. Появляется второе окно. В первом окне запускаем команду-1. Во втором окне запускаем команду-2. Не?

Предполагается, что используется X-сервер и какое-нибудь DE.

yura_ts ★★
()

попробуй любую многозадачную ОС

anonymous
()
#! /bin/bash -e

xfce4-terminal -e "top"&

xfce4-terminal -e "top"&

exit 0;
Запустит тебе 2 эмулятора терминала xfce4-terminal,
в каждом из них будет запущено два процесса top вмето,
top можешь вписать путь до нужных тебе программ, путь 
надо записывать полный например /home/$USER/myprogramm 
Dron ★★★★★
()
Последнее исправление: Dron (всего исправлений: 2)

запуска двух программ

В DOS это невозможно по умолчанию, хотя можно запустить резидентную программу, но есть всякие DESQview, которые это могут.

Unicode4all ★★★★★
()

который откроет сразу два терминалаи одновременно запустит там по процессу

Не понял, а зачем открывать для этого 2 терминала?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

чтобы выводы функций были в удобоваримом виде. Идея такая: есть два теста, работающие по времени одинаково -> они заканчивают одновременно и одновременно надо получить результаты, а не последовательно.

EfYak
() автор топика
Ответ на: комментарий от EfYak

они заканчивают одновременно

это только на каких-нибудь детерминированных виртуальных машинах

dimon555 ★★★★★
()
Ответ на: комментарий от silw

Спасибо за совет! parallel сильно понравился, и прост в освоении. Возник вопрос следующего толка:

#! /bin/sh

# Bind benchmark to cpu and memory node
FIRSTCPU=`cat /proc/cpuinfo | grep processor | head -n1 | cut -d':' -f2`
SECONDCPU=`cat /proc/cpuinfo | grep processor | sed -n 2p | cut -d':' -f2`
THIRDCPU=`cat /proc/cpuinfo | grep processor | sed -n 3p | cut -d':' -f2`
LASTCPU=`cat /proc/cpuinfo | grep processor | tail -n1 | cut -d':' -f2`

#taskset 2 ./tscbench
numactl --physcpubind="$THIRDCPU" --localalloc ./tscbench/tscbench

echo "TEST 3 ENDS"

Таких скрипта 4 штучки. В каждом привязка процесса к своему ядру. Делал при помощи numactl, ну, это видно в коде. Запускаю при помощи parallel сразу все:

(echo ./start1.sh; echo ./start2.sh; echo ./start3.sh; echo ./start4.sh) | parallel

И что интересно, результат - все 4 теста выполнились почти на 50% быстрее чем просто

./start1.sh

Это натолкнуло на мысль, - А сработал ли мой bind к ядру?!?!

Может быть я неправильно понял суть работы parallel?

EfYak
() автор топика
Ответ на: комментарий от EfYak

Every time you use a pipe, god kills a kitten.

NCPU=$(grep -c ^processor /proc/cpuinfo)
beastie ★★★★★
()
Ответ на: комментарий от EfYak

а не слишком ли это сложно?

#! /bin/sh
# Bind benchmark to cpu and memory node
numactl --physcpubind=${1} --localalloc ./tscbench/tscbench
echo "TEST ${1} ENDS"

Ну и запустить вот так

user@host : seq 0 3 | parallel ./start.sh

silw ★★★★★
()
Ответ на: комментарий от silw

Твой вариант действительно проще. Но результаты все равно толкают на мысль о том, что нет чистого pipe и этот котёнок все таки остаётся жив. Товарисч, скажи, а может я не так все понял и ищю то что нужно там где нет. Может ли parallel обеспечить асинхронный мультипроцессинг?

EfYak
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.