corvuscor

Пикабушник
Дата рождения: 1 января
114К рейтинг 80 подписчиков 10 подписок 117 постов 24 в горячем
Награды:
10 лет на Пикабу
44

Overwatch теперь запускается под Wine.

Для тех, кто следит за проектом, не будет секретом, что поддержка DX11 для Wine разрабатывается уже около полутора года, и наконец это начало давать первые плоды.
Благодаря последним патчам в git-версии Wine теперь запускается Overwatch. Разработчик Andrew Wesie опубликовал скриншот.

Overwatch теперь запускается под Wine.

К сожалению, так как Wine перешел на стадию заморозки, в версию 2.0 эти патчи не войдут.

Тем не менее, желающие немедленно попробовать нововведения могут собрать версию из git самостоятельно. Следует отметить, что требуется видеокарта с поддержкой OpenGL 4.x.

Показать полностью 1
125

Зачем нужен многоядерный процессор.

Я думаю, многим будет интересно почитать более или менее предметную информацию по этому поводу. У многоядерных процессоров есть как свои сторонники, так и противники. Истина, конечно-же, лежит где-то посередине. На эту тему бытует множество заблуждений - и про "виртуальные ядра" у Intel, и про умножение частоты на количество ядер (жуть то какая), и прочее прочее. Постараюсь максимально просто ответить на это.

В современных ОС существуют понятия процесса, потока или нити (thread), а также планировщика задач.

Процесс, условно - это наша программа, загруженная в память.

Поток - это набор команд внутри этой программы, который может выполняться асинхронно, или одновременно с другими потоками.

На каждый процесс приходится минимум 1 поток.

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

Схема переключения потоков, называемая "карусель".


И чем больше потоков, тем больше времени уходит на их переключение.

Так зачем же были нужны потоки до появления многоядерных процессоров?

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

Казалось бы, несколько ядер должны были просто очень увеличить производительность компьютера.

Но на практике все не так хорошо. Потоки в не адаптированной для многоядерных машин программе выполняют разные задачи, с разной скоростью, и зачастую зависят друг от друга.

Вот и выходит, что горшочек не варит, а ядра простаивают.

Каким критериям должна отвечать программа, способная эффективно выполняться на многоядерной машине? Ее потоки не должны зависеть друг от друга, и иметь приблизительно одинаковую вычислительную сложность. Есть задачи, которые сравнительно легко поддаются такому препарированию, например, обработка изображений, видео, архивирование, рендеринг. С определенным оговорками, конечно. А есть и такие, с которыми приходится сильно попотеть, прежде всего это любимые многими компьютерные игры. Разработчику приходится практически с самого момента написания движка серьезно думать над его архитектурой, чтобы несколько не зависящих друг от друга потоков рисовали слаженную картинку. Не у всех выходит.


Теперь поговорим о компоновках и технологиях многоядерных CPU на десктопах. Благо, есть о чем.


Классические многоядерные процессоры появились в домашних компьютерах в 2005 году.

Опуская историю, современные процессорные ядра - это практически полноценные процессоры на одном кристалле, тем не менее, делящие некоторые общие ресурсы - память, кеши, контроллеры, и даже GPU на одном кристалле. Но с точки зрения пользователя это несущественно.


Hyper-Threading (HT).

Революционная технология от Intel, и те самые виртуальные ядра, которые все так хотят видеть в своем компьютере. На самом деле, люди часто сами вводят себя в заблуждение, считая, что двухядерный процессор будет работать как четырехядерный. На самом деле вся соль заключается в том, что каждое ядро имеет удвоенный набор регистров, два контроллера прерываний и может хранить два контекста потока одновременно. Тем самым экономится время планировщика на переключение потоков, и блоки процессора загружаются более равномерно, что иногда дает неплохое ускорение. Однако, если программа спроектирована так, что способна гибко адаптироваться к количеству ядер, вполне возможно, HT только навредит, увеличивая накладные расходы. Хотя его всегда можно отключить. Полезная штука, если вы знаете, за что переплачиваете.

Модульная архитектура AMD.

Многие ошибочно полагают, что это аналог HT от Intel, и что AMD льет нам в уши про 8 ядер в своих процессорах FX. Некоторых даже бывает крайне сложно переубедить.

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

Что здесь можно заметить? Да, на нем два целочисленных кластера, 4 блока декодирования, один FPU, общий кеш L2. Он действительно может выполнять два потока одновременно, но будет стопориться на операциях с плавающей точкой. Впрочем, немногие помнят, что когда-то FPU был отдельной микросхемой и не входил в состав CPU. Технология была довольно интересной для серверов, но на десктопах АМД подвела плохая оптимизация софта и слабый FPU, и, вероятно, они откажутся от нее в будущем поколении процессоров. Но это уже совсем другая история.


Вы прослушали краткий курс лекций по компьютерной грамотности.

Показать полностью 3
22

Вышел порт Total War: Warhammer под Linux.

Который, в отличие от Deus Ex, ВНЕЗАПНО оказался очень даже хорошего, годного качества. С последними патчами для radeonsi игра идет даже чуть быстрее, чем на Windows DX11. Если кого-то интересует тестирование и прочие технические вещи - ссылка:

http://www.gearsongallium.com/?p=3535

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

Вышел порт Total War: Warhammer под Linux.
1148

Компания Microsoft получила статус платинового участника Linux Foundation

Компания получила статус платинового участника консорциума Linux Foundation — некоммерческой организации, которая продвигает, защищает и стандартизует Linux, предоставляет ресурсы и сервисы сообществу открытого ПО. Это же огласили со сцены dev-конференции «Connect(); // 2016» представители компании. (Хабр)

Компания Microsoft получила статус платинового участника Linux Foundation
81

Одна из самых значимых песен в истории power-metal...

...да и метала в целом: Helloween - I Want Out. Оригинал и несколько версий от известных и не очень групп и музыкантов (в т.ч и выходцев из Helloween). Тэг "Helloween" не ставлю из-за местного чудо-исправлятора тегов, не знающего разницы между Helloween и halloween.
Неповторимый оригинал:

Hammerfall:

Sonata Arctica:

Gamma ray:

Unisonic:

Pellek:

Wings of Destiny:

Показать полностью 6
22

Маленькая видеохитрость для пингвинят...

... которые любят смотреть клипы с ютуба. Есть широко известный в узких кругах плеер mpv (вообще, кмк, лучший на данный момент для Linux). Если воспользоваться командой:

mpv ytdl://ytsearch20:"что нибудь"

он проиграет вам первые 20 видео (вроде бы :D) по запросу "что нибудь" из ютуба. Лично у меня вторым монитором стоит телек, посредством hdmi идет звук на подключенные к нему колонки, mpv настроен играть на нем. Неплохая альтернатива блевотному федеральному тв. Можно забить команду на алиас или даже простенький скрипт написать с zenity и граф. окошком, у кого вид консоли вызывает страх и ужас.
Возможно, кому-то пригодится.

59

Простейший медиасервер прямо на коленке.

Решил написать статейку, возможно, кому-то подобный "хэлоуворлд" будет интересен и расскажет что-то новое, или сподвигнет на дальнейшее изучение фич, которые были использованы, ну и проч проч. Задача - в десяток строк кода сделать видеохостинг. Все опыты проводились на Ubuntu 16.04.

Все, что для этого (ffmpeg, python, bash) вроде как есть из коробки.

Для начала вкратце объясню, как это работает. Есть такая технология - CGI. Оно выполняет скрипты на стороне сервера и показывает stdout в виде либо текста, либо html. Запилим такой скрипт:


#!/bin/bash


echo "Content-Type: text/html"

echo

echo "<html>"

echo "<head><title>Media_test</title></head>"

echo "<body>"

for file in *; do if [[ "$file" == *.mp4 ]]; then

echo "<h3> "$file" <h3>"

echo "<video src=\"../$file\" controls type="video/mp4"></video>";

fi

done

echo "</body></html>"


Назовем его, скажем, test, создадим в папке с вашими медиафайлами папочку cgi-bin, кинем туда этот скрипт (не забудьте сделать его исполняемым).

Что делает скрипт?

Сначала - стандартная заглушка для html, заголовок, потом он перебирает файлы, и если находит видео mp4, выводит название и само видео тегом <video>.

Где подвох?

Подвох в том, что html5 умеет очень ограниченное количество форматов, и обычные mkv, которые, как правило, h264+ac3, в этот список не входят. Но можно перепаковать их сравнительно малой кровью в mp4 h264+aac такой командой в папке с медиафайлами:


for i in *mkv; do ffmpeg -i "$i" -strict experimental -c:v copy -c:a aac -b:a 192k "$i".mp4; done


И, в финале, нам нужен http-сервер. Т.к пример у нас хэллоуворлдный, воспользуемся встроенным в питон. Выполним в папке с медиафайлами:


python3 -m http.server --cgi


Все! Вы великолепны! Перейдите по адресу 127.0.0.1:8000/cgi-bin/test и полюбуйтесь проделанной работой))

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

Показать полностью
Отличная работа, все прочитано!