sudo apt-add-repository ppa:swi-prolog/stable
sudo apt-get update
sudo apt-get install swi-prolog
swipl
prolog
Используя стандартную библиотеку POSIX Threds запустить три потока. 1) Запуск потоков последовательно т.е. <поток 1> -> <поток 2> -> <поток 3> 2) Запуск потоков параллельно без обмена информацией или сигналами т.е. <поток 1> -> <поток 2> | <поток 1> -> <поток 3> 3) Запуск потоков параллельно с обменом информацией любым способом т.е. <поток 1> -> <поток 2> : <поток 1> -> <поток 3> При этом <поток 2> имеет право выводить на печать (окно терминала) только нечетные числа. <поток 3> только четные. Разрешается много раз создавать и уничтожать потоки (особенно в задании 1). Задача: Последовательно вывести все числа от 1 до 100 Пояснение: За выполнение каждого пункта начисляется по 10 баллов
Написать с использованием библиотеки стандарта MPI программу "Hello World!". Главный исполнитель должен получать от всех птоков сообщения Hello и печатать их на терминале. По окончанию получения сообщений от всех остальных потоков должен печатать сообщение от себя и завершаться.
Используя интерфейс обмена данными MPI реализовать процедуру поиска выхода из лабиринта размерности N на N. Лабиринт хранится в текстовом файле. в первой строке файле хранятся числа N и K (размерность лабиринта и количество расчетных блоков по строкам и по столбцам соответственно), K кратно N. При этом расчетные блоки должны хранить лабиринт не целиком, а только отдельные его куски. В лабиринте могут находится следующие элементы: '.' - пустая клетка, '#' - стена, '*' - вход в лабиринт 'E' - выход из лабиринта Решением считается длина минимального маршрута перемещения в ходах и набор последовательных ходов, соединяющих место старта с местом финиша. Допустимые ходы - N (на одну клетку на север), S (на одну клетку на юг), E (на одну клетку на восток), W (на одну клетку на запад)