Установка wine32(x86) и wine64(x64) на Linux Ubuntu 16.04

Доброго времени суток! Вот как бывает, полностью переходишь на unix-подобную операционную систему, мгновенно пропадают головные боли, начинаешь дышать полной грудью и вообще все отлично. Но однажды может наступить такой момент, когда прошлое возвращается вместе со срочной необходимостью запустить программное обеспечение написанное исключительно под Windows. Чаще всего такое происходит со старым ПО, которое уже никто и никогда не перепишет под Linux, а функционал его остается востребованным.

Так случилось и со мной, пару дней назад мне понадобилось быстро собрать поистине много ключевых слов, а единственный инструмент доступен только под 32 битную версию Windows. Даже не под 64 битную, ну что за ужас.

Поэтому, друзья мои, сейчас я расскажу о том, как запускать Windows программы на любой Linux системе с помощью Wine.

Что такое Wine

Буквально в двух словах, Wine это свободная альтернативная  реализация известного всем и каждому Windows API. Wine стремительно развивается каждый божий день, добавляется поддержка все новых программ и улучшается совместимость со старыми. В общем, все отлично. Больше ничего говорить не буду, уже давно пора перейти к настройке, все остальное вы сможете прочитать на вики.

Самый главный совет перед установкой Wine: убедитесь, что реально не существует аналогов программного обеспечения под вашу систему, пусть даже с урезанным функционалом. Зачастую установить аналог и привыкнуть к нему гораздо проще, чем заставить ПО бегать под wine.

Если совсем никакого выхода нет, то прошу к инструкции по установке Wine.

читать далее «Установка wine32(x86) и wine64(x64) на Linux Ubuntu 16.04»

Реализация параллельного алгоритма Флойда-Уоршелла

Доброго времени суток! Буквально пару дней назад я опубликовал реализацию линейного алгоритма Флойда-Уоршелла поиска кротчайших путей между всеми вершинами взвешенного графа. В той статье я обещал разобраться и реализовать параллельный алгоритм Флойда-Уоршелла, прошло несколько дней и родилась эта статья.

Придумывать пришлось практически с нуля, потому что информации я не нашел вообще никакой, только отрывки чьих-то курсовых работ и прочие мелочи. Программного кода не найти в принципе.

В качестве инструмента будет использована уже знакомая библиотека MPICH(установка библиотеки).

Схема параллельного алгоритма Флойда-Уоршелла

В оригинальном линейном алгоритме единственная операция это нахождение минимума, как справедливо замечено в крохах источников, что я находил, ее нет смысла распараллеливать. Вся сложность алгоритма(О^3) заключается в полном переборе «матрицы смежности». Напомню, что я так называю матрицу размера NxN, в которой на пересечении i-й строки и j-го столбца стоит вес ребра из i-ой вершины в j-ую.

читать далее «Реализация параллельного алгоритма Флойда-Уоршелла»

Реализация алгоритма Флойда-Уоршелла на C/C++

Доброго времени суток, друзья! Сегодня моя копилка реализованных алгоритмов на графах пополнится алгоритмом поиска кратчайших путей между всеми вершинами в графе. Для начала перечислю алгоритмы, которые уже опубликованы на сайте.

Реализация поиска в ширину на графе;
Реализация поиска в глубину на графе;
Реализация топологической сортировки и поиска компонент сильной связности;

Реализация обычного алгоритма Флойда-Уоршелла нужна мне для того, чтобы запрограммировать параллельное вычисление этой задачи с помощью библиотеки MPI. Отчет о результатах распараллеливания я напишу уже совсем скоро(я очень на это надеюсь). А сейчас поговорим о стандартном алгоритме Флойда-Уоршелла.

Суть алгоритма Флойда-Уоршелла

Как я упомянул, алгоритм предназначен для нахождения кратчайших путей между всеми вершинами в графе. По сути он представляет собой простой перебор всех путей и выбор из них наименьшего. Перебор осуществляется по так называемой «матрице смежности» размера NxN, где N — количество вершин графа.

читать далее «Реализация алгоритма Флойда-Уоршелла на C/C++»

Настройка библиотеки MPI в CLion

Привет «параллельным программистам», мы продолжаем настраивать библиотеку MPICH везде, где это возможно и сегодня на операционном столе замечательная IDE CLion от JetBrains. До этого я уже рассказывал о том, как установить библиотеку MPI в систему Linux, и затронул тему настройки MPI в Eclipse.

Необходимо сразу подчеркнуть, что сейчас будет сказка, настройка в CLion несравнимо проще, чем в Eclipse. CLion сам по себе на голову выше многих IDE, поэтому если вы можете себе его позволить, то незамедлительно позволяйте. Сам я бедный студент ЧелГУ и пользуюсь лицензией для студентов, которая будет действовать до тех пор, пока числюсь в списках университета. Спасибо JetBrains за такую возможность!

Подключить библиотеку MPI в CLion

Проекты на C/C++ в CLion`е собираются с помощью автоматизированной кроссплатформенной системы сборки CMake. Суть в двух словах, мы пишем файл CMakeLists.txt в корне проекта, который содержит правила для сборки, на которые ориентируется Make, либо ее аналог в Windows. Более подробно о CMake на вики и статья на хабре.

читать далее «Настройка библиотеки MPI в CLion»

Включаем поддержку C++11 в Eclipse

Доброго времени суток! Я не знаю почему, но Eclipse из коробки не поддерживает стандарт языка C++11, отсюда возникают неприятности типа «stoi was not declared in this scope.». Кроме того, не распознаются такие полезные функции как to_string, atoi, atof, stod, stof и многие другие.

Однажды я даже запарился и написал свою реализацию stoi, потому что не смог подружить Eclipse со стандартной функцией, но понятное дело, что это никуда не годится. Поэтому я таки поборол свою среду разработки. Удивительно, но не нашлось внятных инструкций на русском языке, и это стало второй причиной создания этой записи. Первая причина банальная — я не смогу второй раз все это повторить без инструкции.

Включаем C++11 в Eclipse

Уже должен быть создан проект, настройка будет выполняться для него.

читать далее «Включаем поддержку C++11 в Eclipse»