Pull to refresh

ВМС США тестириует применение AR-очков Magic Leap One для обучения личного состава

AR and VR
Несмотря на действующий контракт Microsoft с армией США, предполагающий разработку модификации очков HoloLens для использования солдатами в бою, о котором уже писали на Хабре, ВМС США объявили о том, что тестирует применение в бою очков Magic Leap One.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 1.8K
Comments 0

Несколько занимательных Python-проектов

Python *
Вступление.

Я долго думал, создавать ли этот топик.
Аргумент против: творения не мои, поэтому инвайта ожидать не стоит, а в силу отсутствия исходников полезность статьи не велика.
Аргумент за: я был сильно впечатлен увиденным, а искать что-то касающееся Python-а и программирования в целом на просторах youtube-a вряд ли кто-то станет.

Так что в конце-концов я все же решил поделиться увиденным с публикой. А поделюсь я с Вами несколькими видео-роликами, раскрывающими возможности ряда программ, написанных на питоне с использованием модуля pygame. Основная тематика приложений — различного рода симуляции.

Об авторе (но не от автора).

Автором всех шести приложений является Badmephisto — студент из Словакии, живущий в настоящее время в Канаде. Он весьма известен как спидкубер, но, как мне кажется, не менее талантлив в программировании. Еще он замечательный математик, увлекающийся фракталами.
Ссылки: Cubing site, Youtube account, Fractalmath channel.

Читать дальше →
Total votes 24: ↑19 and ↓5 +14
Views 9.9K
Comments 11

Генератор Федеративного Фильтра Калмана с использованием Генетических Алгоритмов

.NET *Algorithms *Concurrent computing *
В рамках своей научной активности реализовал так называемый Федеративный Фильтр Калмана (Federated Kalman Filter). В этой статье рассказывается о том, что такое «Федеративный ФК», чем он отличается от обобщенного, а также описывается консольное приложение, реализующее данный фильтр и генетические алгоритмы для подбора параметров его математической модели. Приложение было реализовано с использованием TPL (Task Parallel Library), поэтому пост будет интересен не только специалистам по цифровой обработке сигналов.

UPD1: после прочтения двух недавних статей решил тоже присоединиться к эксперименту/исследованию/авантюре (называйте как хотите). В конце статьи добавил еще один опрос — "Стали бы Вы поощрать рублем такие узко специализированные статьи на Хабрахабре?".

Под катом описание и ссылка на сорцы
Total votes 60: ↑57 and ↓3 +54
Views 24K
Comments 11

Аппаратная виртуализация. Теория, реальность и поддержка в архитектурах процессоров

Intel corporate blog
Tutorial
В данном посте я попытаюсь описать основания и особенности использования аппаратной поддержки виртуализации компьютеров. Начну с определения трёх необходимых условий виртуализации и формулировки теоретических оснований для их достижения. Затем перейду к описанию того, какое отражение теория находит в суровой реальности. В качестве иллюстраций будет кратко описано, как различные вендоры процессоров различных архитектур реализовали виртуализацию в своей продукции. В конце будет затронут вопрос рекурсивной виртуализации.
Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Views 70K
Comments 6

Создаем симулятор солнечной системы

Python *Game development *
Sandbox
Предисловие
Вечная тяга к новому подтолкнула к изучению такого замечательного языка программирования, как Питон. Как это часто бывает, отсутствие идеи, на реализацию которой не жалко потратить свое время, сильно тормозило процесс.

Волею судьбы на глаза попался замечательный цикл статей о создании игры-платформера на Питоне
тут и тут.
Я решил взяться за один старый проект. За симулятор движения тел под действием сил гравитации.

Что из этого вышло читайте дальше.
Читать дальше →
Total votes 44: ↑32 and ↓12 +20
Views 50K
Comments 69

Программная симуляция микропроцессора. Коробка передач

Intel corporate blog
Tutorial
В этой статье я хочу рассказать о том, как создатели симуляторов добиваются максимальной производительности моделей процессоров, при этом не жертвуя гибкостью и расширяемостью полного решения. Если кратко, то решение состоит в сосуществовании нескольких движков, наилучшие качества которых используются на различных этапах работы модели.
Содержимое данной заметки будет основываться на моём опыте разработки функциональных симуляторов, а также на публикациях и технических статьях, описывающих различные симуляторы и виртуальные машины: Wind River Simics, VMWare, Qemu, Bochs и другим. Слово «функциональный» в контексте данной статьи обозначает то, что точность моделей ограничена уровнем набора команд (instruction set architecture, ISA).
Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Views 31K
Comments 8

Симулируем чайник в Wind River Simics

Intel corporate blog System Analysis and Design *
Translation


Примечание переводчика: представляю вниманию почтенной публики статью Якоба Энгблома (Jakob Engblom), в которой он демонстрирует внесение «аналогового» устройства в общем-то дискретный симулятор. Сам я также использую и разрабатываю модели для Simics, но с несколько других позиций, из-за чего редко вижу конечные плоды всей деятельности. Поэтому мне было очень интересно узнать, чем занимаются мои коллеги из Wind River, а затем захотелось поделиться с вами. Тех, кому тема полноплатформенной симуляции или конкретно Simics показались интересными, рекомендую обратить внимание на свежайший выпуск Intel Technology Journal Simics Unleashed – Applications of Virtual Platforms. Я также могу рассказать о Simics более детально и на Хабре в последующих своих постах. Жду ваших комментариев!

Встраиваемая вычислительная система редко работает в изоляции. Тогда как персональные компьютеры и потребительская электроника обычно могут работать самостоятельно с относительно нечастным вмешательством человека, большинство встроенных компьютеров тесно взаимодействуют с окружающим их миром. Они «чувствуют» его, исполняют управляющие алгоритмы, считывают показания датчиков, используют всевозможные актуаторы для того, чтобы изменять внешнюю среду. Они — активные участники непрерывно эволюционирующей кибер-физической реальности. Симуляция таких систем не может быть ограничена моделью изолированного цифрового компьютера — приходится вносить в неё часть физического мира. На следующем видео на Youtube демонстрируется, как это можно осуществить с помощью Wind River Simics.
Видео с выкипающим чайником
Total votes 18: ↑16 and ↓2 +14
Views 8.6K
Comments 3

Обращая симулируемое время

Intel corporate blog Programming *Debugging *

Я уверен, что у многих из нас при отладке приложений периодически возникает желание отступить на шаг (или два, десять...) назад от текущей строки, чтобы увидеть причины происходящего в ней неправильного поведения. Чаще всего для этого приходится перезапускать отладку с начала и пытаться остановить исполнение программы чуть раньше, чем на предыдущей попытке. Затем надо пошагово приблизиться к предполагаемому месту с проблемой… упс, опять перешагнули! Начинаем всё по новой, ведь в дебаггере уже нельзя отступить назад даже на один шаг. Или можно?

В одном из своих предыдущих постов я запланировал описать, как программная симуляция цифровых систем позволяет делать то, что невозможно в реальности, а именно — обращать вспять течение времени для нужд отладки. Об этом и пойдёт речь в этой заметке.


Автор фото: Иван Андреев
Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Views 10K
Comments 7

Случайные числа и детерминистичная симуляция

Intel corporate blog Cryptography *Programming *


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

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


Иногда самый надёжный способ получить случайное число — взять его из справочника. Источник изображения: www.flickr.com/photos/nothingpersonal/337684768
Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Views 30K
Comments 22

Как я провёл лето: летняя школа-практикум «Компьютерный континуум-2014»

Intel corporate blog System Analysis and Design *
Добрый день всем! Хочу рассказать о своём опыте участия в летней школе «Компьютерный континуум-2014», где я читал свой курс. Мероприятия школы проходили с 25 по 30 августа. Однако я попал только на три дня, в которые проводились тренинги: с 26 по 28 число.


И хотя на непосредственно мероприятиях я пробыл лишь три дня, подготовка заняла значительную часть лета вне отпуска. Задача передо мной стояла непростая.
  1. Необычная для меня площадка. Я давно не проводил занятий вне стен офиса или своего родного МФТИ.
  2. Сжатые сроки проведения. Обычно свой курс я читаю в течение семестра или даже учебного года. Что можно успеть за три дня? Пришлось тщательно ограничивать и балансировать объём теории и практических задач, которые я мог бы выплеснуть на слушателей.
  3. Мне был совершенно неизвестен уровень подготовки публики. Работая со студентами одного курса, можно примерно представлять, что они уже проходили; кроме того, обычно мы их собеседуем. Кто будет на этой школе и каков будет уровень их подготовки — для меня было загадкой. И в самом деле, люди пришли очень разные (об этом далее).

Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 3.7K
Comments 1

Моделируем преднапряжение бетонной оболочки АЭС

Autodesk corporate blog CAD/CAM *Industrial Programming *
Tutorial
Дорогие хабровчане!

С момента старта проекта Masters of Simulation прошло уже три месяца, и у нас есть уже результаты, которыми хотели бы с вами поделиться.

Мы получили достаточно много заявок и были очень рады тому, что эта наша инициатива нашла живой отклик в умах и сердцах инженеров и конструкторов, молодых аспирантов и уже матёрых специалистов. Задачи, которые участники проекта прислали нам в своих анкетах, оказались интересными и, порой, очень неординарными. Был тут и расчет процессов при разрушении конструкций, и расчет композиционных материалов, и высоконелинейные процессы, и многое другое.

Наибольшее продвижение в решении достигнуто по трем следующим анкетам:
1. Задача: смоделировать преднапряжения «куска» бетонной оболочки с потерями на трение и скольжение. Автор: Маркевич Максим Александрович
2. Задача: Моделирование жесткости линейных направляющих и подшипников качения. Для анализа жесткости отдельных узлов (мехатронных модулей) станков Автор: Юсупов Наиль Хамитович
3. Задача: Необходимо получить температурные поля и напряжения в многослойной конструкции при воздействии температурного источника и под действием силовой нагрузки. Автор: Долгополова Наталья Владимировна

Ниже в этой публикации мы приводим детальное описание решения задачи Максима Александровича Маркевича, упомянутой выше.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Views 16K
Comments 6

Ассемблер для задач симуляции. Часть 1: гостевой ассемблер

Intel corporate blog Programming *Assembler *System Programming *
Instructions, registers, and assembler directives are always in UPPER CASE to remind you that assembly programming is a fraught endeavor
golang.org/doc/asm
На Хабре да и в Интернете в целом есть довольно много информации про использование языков ассемблера для всевозможных архитектур. Пролистав доступные материалы, я обнаружил, что чаще всего освещаемые в них области использования ассемблера и родственных технологий следующие:
  1. Встраиваемые (embedded) системы.
  2. Декомпиляция, обратная разработка (reverse engineering), компьютерная безопасность.
  3. Высокопроизводительные вычисления (HPC) и оптимизация программ.
И конечно же, в каждой из этих областей существуют специфические требования, а значит свои понятия об инструментах и «свой» ассемблер. Эмбедщики смотрят в код через редактор и дебаггер, реверс-инженеры видят его в декомпиляторах вроде IDA и radare2 и отладчиках ICE, а HPC-спецы — через профилировщики, такие как Intel® VTune™ Amplifier, xperf или perf.
И захотелось мне рассказать об ещё одной области программирования, в которой ассемблеры частые спутники. А именно — об их роли при разработке программных моделей вычислительных систем, в простонародье именуемых симуляторами.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 11K
Comments 4

Виртуальное время, часть 2: вопросы симуляции и виртуализации

Intel corporate blog System Programming *
Tutorial
В предыдущей статье я рассмотрел существующие в платформе PC источники времени, их особенности, недостатки и историю. Теперь, вооружённые этим знанием, мы можем рассмотреть, как эти устройства могут быть представлены внутри виртуального окружения — полноплатформенного программного симулятора или системной виртуальной машины, т.е. программной среды, позволяющей запускать внутри себя операционную систему.
В этой статье мы разберём различные способы представления времени внутри моделей, подходы к имитации работы таймеров, возможности аппаратного ускорения при виртуализации, а также трудности согласования течения времени внутри моделируемых окружений.



Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 8.5K
Comments 0

Семь видов интерпретаторов виртуальной машины. В поисках самого быстрого

Intel corporate blog Abnormal programming *Programming *Assembler *C *
Tutorial
Все проблемы в области Computer Science могут быть решены введением дополнительного уровня косвенности. За исключением одной: слишком большого числа уровней косвенности.
All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.

Программные интерпретаторы известны своей невысокой скоростью работы. В этой статье я расскажу, как их можно ускорить.
Я давно уже хотел поподробней остановиться на создании интерпретаторов. Прямо таки обещал, в том числе самому себе. Однако серьёзный подход требовал использования более-менее реалистичного кода для примеров, а также проведения измерений производительности, подтверждающих (а иногда и опровергающих) мои аргументы. Но наконец-то я готов представить почтенной публике результаты, причём даже чуть более интересные, чем собирался.
В данной статье будет описано семь способов построения программной ВМ для одной гостевой системы. От самых медленных мы проследуем к более быстрым, поочерёдно избавляясь от различных «неэффективностей» в коде, и в конце сравним их работу на примере одной программы.
Тех, кто не боится ассемблерных листингов, испещрённого макросами кода на Си, обильно удобренного адресной арифметикой, goto и даже longjmp, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат.
Читать дальше →
Total votes 47: ↑47 and ↓0 +47
Views 30K
Comments 48

Написание и запуск скрипта для симуляции Verilog-кода в ModelSim

FPGA *
Sandbox
Tutorial

image

Всем привет! Надеюсь, все хорошо провели праздники и готовы с новыми силами покорять высоты FPGA разработки.


Сегодня я хочу написать небольшой гайд по запуску тестбенчей на Verilog/SystemVerilog в ModelSim без использования GUI.


План будет такой:


  1. Добавление пути к ModelSim в PATH.
  2. Написание скрипта с объяснением команд.
  3. Запуск ModelSim с исполнением написанного скрипта.

Поехали!

Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Views 20K
Comments 14

Что если в играх использовать видеокарточку для физики, а не для графики

Game development *Concurrent computing *Unity3D *
Хочу рассказать сообществу о проведённом мной эксперименте.

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

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

Или те же гоночки: до чего приятней на полной скорости сшибать людей, рекламные щиты и помойки, чтобы разлетались во все стороны, вместо того, чтобы мгновенно останавливаться, врезаясь в мёртво врощенный в землю столб.

Или ещё замечательный пример — Kerbal Space Program. Там физика уже является непосредственым источником геймплея.

Или, например, жанр 2д артиллерии. Часть его очарования базируется на уничтожаемой, динамичной земле. Но до чего он был бы лучше, если б земля не просто линейно осыпалась, а вела себя реалистично, разлетаясь от взрывов кусками.

Я давно мечтал сделать именно такой, до предела физически реалистичный римейк Scorched Earth. Но все мои эксперименты с моделированием физических систем упирались в неумолимо медленные процессоры. Тысяча-две частиц были пределом для real-time симуляции.

Но недавнее моё «открытие» изменило ситуацию.
Total votes 157: ↑146 and ↓11 +135
Views 77K
Comments 219

1.500.000 установок за 3 месяца — история разработки Tap Tap Builder

Game development *Unity3D *
Добрый день! Я — инди-разработчик и автор игры Tap Tap Builder. В этой небольшой статье я поделюсь своим опытом и расскажу, как маленькая игра прокладывает себе путь в большой мир.

image
Читать дальше →
Total votes 49: ↑39 and ↓10 +29
Views 24K
Comments 38

Математическая модель снобизма

Maxilect corporate blog Entertaining tasks Algorithms *Mathematics *Reverse engineering *
Иногда бывает интересно на основе данных попытаться построить какую-то сущностную математическую модель явления, чтобы иметь возможность производить симуляцию происходящих событий, когда нет возможности проводить многочисленные натурные эксперименты с учетом различных факторов, ситуаций или контекстов. Но не все же только в нейронные сети загонять данные и смотреть, что получается.


Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 3.5K
Comments 0

Отрицательный отбор кадров в иерархической структуре предприятия

Maxilect corporate blog Mathematics *Community management *Personnel Management *

Вступление


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

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

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


Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 15K
Comments 24

Cadence представит Genus на семинарах по разработке микросхем в Питере и Зеленограде

CPU Electronics for beginners
Новости дружественных организаций (Cadence, МИЭТ, ИТМО, НПЦ Элвис и других):

Cadence Design Systems, одна из двух крупнейших мировых компаний в области автоматизации разработки микросхем, 15-16 октября проведет семинары в Московском институте электронной техники (МИЭТ) в Зеленограде и Питерском Университете ИТМО, в котором (по опыту моей поездки 2012 года) студенты очень хорошо понимают Verilog и системы на кристалле.

В семинарах примут участие и три российские компании «Элекроприбор», НИИМА «Прогресс» и НПЦ «Элвис». См. статью про сотрудничество с Imagination Technologies родственной НПЦ «Элвис» организации «Элвис-Неотек» на сайте Роснано.

Среди презентаций я лично рекомендую посмотреть на новый тул для синтеза Genus — я видел и заснял его презентацию в июне на выставке Design Automation Conference в Сан-Франциско:


Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 6.9K
Comments 14