-
13.03.2012
Майк Уолл акцентирует внимание на вопросе оптимизации и повышения производительности кода при переносе. Начиная с объяснения преимуществ архитектуры AMD64, автор обсуждает несколько методов повышения производительности кода, включая использование ключей компилятора, встроенных функций, ассемблера и много другое. В дополнение он также описывает преимущества инструмента CodeAnalyst при оптимизации кода. В статье вы найдете несколько полезных примеров кода.
-
14.02.2012
В своем посте, Брюс Доусон объясняет, каким методом пользуется он и его коллеги в Valve для поиска и исправления ошибок усечения указателей на 64-битных системах. Объяснение приводится на примере демонстрационного кода.
-
27.01.2012
В этой короткой заметке автор рассказывает о своем опыте использования двух статических анализаторов кода, каждый из которых предоставляет собственную методику анализа: Address Sanitizer (ASan) и Clang Static Analyzer.
-
11.01.2012
В статье дается объяснение различий между 32-битными и 64-битными системами с точки зрения комплексной структуры компьютерной системы, состоящей из трех компонентов, или уровней: процессор, операционная система и приложения. Объясняются основные принципы архитектурной организации, а также приводятся ответы на самые распространенные вопросы о 32-битных и 64-битных системах.
-
06.01.2012
Данный пост посвящен ложному представлению о том, что инструменты статического анализа являются инструментами тестирования кода или могут служить хорошей заменой таковым. Автор объясняет разницу между различными видами тестирования и методикой статического анализа, раскрывая суть последнего и его роль в разработке. Он согласен, что статические анализаторы необходимы, но они предназначены для выявления "узкого диапазона дефектов кода".
-
13.12.2011
В этой заметке автор дает некоторые советы о том, как выбрать подходящий статический анализатор для ваших проектов. Эти советы помогут вам сделать правильный выбор с максимальной пользой для себя.
-
30.11.2011
Прослойка WOW в 64-битной Windows и используемый ею механизм перенаправления создает проблемы при проведении проверок безопасности информационных систем. В статье раскрывается суть этих проблем, и даются объяснения, как приспособить существующие инструменты анализа для их решения.
-
07.11.2011
Заметка отсылает читателя к статье Coverity, в которой описываются достоинства статического анализа и упоминаются три метода, которые он в себя включает: анализ потока данных, межпроцедурный анализ и сокращение ложных веток кода. Каждая методика поясняется на примере фрагмента кода.
-
06.10.2011
Автор на примере демонстрационного кода показывает, как нужно настроить компилятор и компоновщик, чтобы скомпилировать C++ приложение для 64-битной Windows. Каждый этап сопровождается комментариями.
-
05.10.2011
Статический анализ включает в себя множество методик, каждая из которых помогает разработчику в поиске разнообразных ошибок и проблем на разных стадиях процесса разработки. В своей статье Артур Хикен описывает данные методики (просмотр кода, анализ на основе паттернов, анализ потока данных, метрики, сообщения компилятора), а также виды проблем, которые решаются с их помощью.
-
11.09.2011
Статья посвящена анализатору C++ кода, интегрированному в среду разработки Visual Studio 2012. Автор описывает реализованные в новой версии улучшения и приводит несколько примеров кода, чтобы показать, как работает инструмент, а также продемонстрировать некоторые его функции. Текст содержит скриншоты, поясняющие принципы работы с анализатором.
-
06.09.2011
Данная заметка посвящена схеме организации стека в x64 архитектуре. Основной акцент делается на операционной системе Linux и других операционных системах, которые соответствуют официальной спецификации System V AMD64 ABI. Автор приводит схемы и примеры кода для пояснения специфики организации стека на платформе x64.
-
01.09.2011
Статья посвящена технологии статического анализа. В ней объясняется принцип работы статических анализаторов, а также описываются различные методики, составляющие эту технологию. Среди них выделяются поиск соответствия по шаблонам ошибок, анализ потока данных, абстрактная интерпретация кода, проверка состояний программы и выдача запросов по коду. Также автор перечисляет инструменты, специализирующиеся в каждой из этих методик. Информация, приведенная в статье, может использоваться студентами для создания собственных инструментов.
-
27.07.2011
Соблюдение стандартов кодирования, принятых в той или иной компании или команде разработчиков, помогает избежать ошибок и сконцентрироваться на более общей и эффективной проверке кода. К сожалению, из-за человеческого фактора код очень часто не соответствует установленным правилам, поэтому необходимо использовать методики автоматического соблюдения стандартов кодирования. В статье описываются два распространенных инструмента статического анализа, которые помогут решить данную задачу – PC-Lint и RSM.
-
22.06.2011
Статья содержит интервью с Джилл Бриттон, которая рассказывает о тенденциях в области статического анализа, наиболее распространенных проблемах, с которыми компания сталкивается в процессе тестирования кода, методиках тестирования приложений в различных сферах и эксклюзивном методе анализа кода, разработанном компанией PRQA.
-
04.06.2011
В своей статье Магнус Юнмир затрагивает вопрос недостатка современных инструментов для разработчиков встраиваемого ПО. По его словам, по мере того как системы встраиваемого ПО становятся все более сложными, инструменты, призванные помочь разработчикам, до сих пор остаются на уровне двадцатилетней давности, помогая решать лишь самые общие задачи (редактирование, компиляция и отладка), вместо того, чтобы становится более гибкими, функциональными и способными решать больший круг вопросов. Среди последних автор выделяет предварительное графическое представление кода, отслеживание изменений в коде и создание систем контроля версий, отслеживание отчетов об ошибках, автоматизированную разработку юнит-тестов и многое другое.
-
01.06.2011
Автор данной статьи дает советы, как повысить качество встраиваемых приложений, используя статический анализ. Эти рекомендации включают в себя создание моделей качества ПО и приоритетных целей разработки, использование сокращенных версий языков, соответствующих стандартам кодирования, и проверку программы на наличие ошибок в процессе ее выполнения.
-
20.05.2011
Статья посвящена методу ревизии кода: она описывает принципы, типы, этапы и уровни этого процесса, а также инструменты, которые используются при ревизии кода. Кроме того, автор приводит список примеров, демонстрирующих наиболее типичные ошибки программирования разных видов.
-
07.05.2011
Статья посвящена инструменту FlexeLint, который, по словам автора, является одним из лучших и наиболее дешевых статических анализаторов C и C++ кода. В тексте содержится большое количество примеров кода, иллюстрирующих ошибки, которые инструмент может находить, а также некоторые его особенности.
-
19.04.2011
Статья представляет собой большое исследование TDSS-семейства вредоносных программ и состоит из трех частей, каждая из которых освещает различные аспекты руткитов и буткитов семейства TDSS: описывается внутреннее устройство вредоносного ПО, механизмы распространения руткитов, особенности установки буткита на различных системах (x86 и x64) и встраивания в загрузочный сектор. Все процессы заражения системы подробно описаны и проиллюстрированы большим количеством таблиц, схем и рисунков.
-
04.04.2011
Компания Microsoft добавила новую функцию Анализ Кода в среду разработки Visual Studio 2010. Данная функция осуществляет статический анализ кода, что поможет разработчикам выявить разнообразные потенциальные проблемы на различных уровнях. Данный курс предназначен для ознакомления разработчиков с функцией Анализ Кода и предлагает изучить принципы работы с этой функцией, выполнив несколько упражнений.
-
22.03.2011
Автор стремится развенчать миф, гласящий, что статический анализ дает 100% покрытие кода и может находить любые уязвимости и дефекты. Он приводит несколько примеров ситуаций, в которых статический анализ не поможет или не справится должным образом. В основном эти ситуации сводятся к анализу стороннего (внешнего) кода, к которому нет прямого доступа для проверки.
-
27.02.2011
В своей заметке автор затрагивает тему инструментов статического анализа кода для осуществления ревизии кода в качестве альтернативы формальным методам. Он дает советы о том, как использовать эти инструменты в зависимости от нужд и обстоятельств.
-
31.01.2011
Поскольку инструменты статического анализа способны обнаруживать уязвимости защиты в исходном коде, многие компании, осваивающие данную технологию, испытывают сильную потребность в сравнении различных статических анализаторов с целью выбрать наилучшее решение. Гэри МакГро объясняет, почему эта задача не так проста, как кажется, и почему сравнение любых инструментов без учета важных нюансов напоминает сравнение фруктов и муравьедов. Автор также дает рекомендацию о том, что нужно выбирать в качестве наиболее адекватных критериев при сравнении инструментов.
-
14.01.2011
Презентация Гая Стили выражает его идею о том, что размышлять о параллелизме – не задача программистов; вместо этого нужно разработать подход к созданию языков программирования, которые могли бы обеспечить прозрачный запуск задач в параллельном режиме и поддерживать алгоритмы, построенные на отсутствии зависимостей и принципах "построить и победить", а не на линейном расчленении проблемных фрагментов.
-
06.01.2011
Уолтер Брайт рассказывает об интересном подходе, который он позаимствовал из области конструирования самолетов и стал применять в программировании. То, чем занимается он сам и советует делать другим программистам, это поиск определенных паттернов постоянно возникающих ошибок. Для каждого найденного паттерна надо придумать способ изменения процесса программирования, чтобы избежать повторения соответствующих ошибок в будущем. Среди возможных путей он предлагает изменение стандартов кодирования, смены языка программирования, технологий тестирования и т.д. Заметка сопровождается примерами кода c различными дефектами, для каждого из которых автор предлагает определенные способы решения.
-
04.12.2010
Статья создана как попытка охватить всю информацию, касающуюся анализа кода в Visual Studio. Она разделена на три части: "Необходимость Анализа Кода", "Запуск Анализа Кода на собственном коде" и "Как подготовить код к полноценному анализу". В первой части объясняется, почему анализ кода необходим для разработчиков, а во второй части содержатся примеры кода основных паттернов ошибок, которые анализатор может обнаружить. В третьей части автор рассказывает, как писать и править свой код так, чтобы анализатор смог полностью проверить его и не "потерять" важные предупреждения. Текст сопровождается большим количеством примеров кода, иллюстрирующих ключевые моменты.
-
17.06.2010
Поскольку 32-битные приложения все еще распространены и активно используются на 64-битных системах, полезно знать о некоторых характерных проблемах прослойки Windows 32-bit on Windows 64-bit (WOW64). В статье затрагиваются проблемы, связанные с ограничениями WOW64, механизмами перенаправления реестра и отражения реестра, механизмом перенаправления файловой системы, ссылками на файлы и переменные, связывания с 32-битными и 64-битными библиотеками DLL, установкой и запуском приложений и драйверами привилегированного режима. В соответствующих разделах автор рассказывает, как избежать этих проблем. В статье также приводятся примеры некоторых приемов работы с 32-битными и 64-битными приложениями в WOW64. В конце статьи вы найдете краткий перечень полезных привычек в работе с 32-битными программами на WOW64.
-
24.04.2010
Сид Сиднер, руководитель отдела инженерии безопасности в компании ACI Worldwide, рассказывает о статическом анализе кода как наилучшем способе обеспечения качества и надежности программных систем. Он объясняет принцип работы инструментов статического анализа кода и приводит список вопросов и рекомендаций в помощь разработчикам при выборе правильного инструмента статического анализа для интеграции с процессами разработки. Автор также делится своим опытом работы с некоторыми производителями инструментов статического анализа и на примере своей компании объясняет, чем они руководствовались при выборе подходящего анализатора.
-
28.01.2010
В данной статье описываются две технологии параллельного программирования с точки зрения технологии многоядерности – MPI и OpenMP. Автор объясняет различия между ними, принцип работы каждой технологии и сравнивает результаты производительности, полученные в программах с использованием MPI и OpenMP. Он также говорит о смешанном подходе в программировании под многоядерные системы, когда используются обе технологии. Статья написано очень доступно и содержит поясняющие скриншоты, схемы и таблицы.
-
01.01.2010
В данной статье разработчики компании Coverity делятся опытом разработки и коммерциализации своего собственного статического анализатора кода, а также выводами и уроками, извлеченными из этого опыта. Авторы формулируют собственные "законы обнаружения ошибок" и рассказывают о различных тонкостях реализации качественного инструмента статического анализа.
-
21.12.2009
Сведения о топологии процессора и кэша важны для управления различными процессорными действиями, такими как планирование задач, оптимизация производительности, соблюдение лицензионной политики и так далее. В статье объясняется принцип алгоритма учета топологии процессора и особенностях его реализации в процессоре архитектуры Intel® 64. Автор также затрагивает вопрос учета топологии кэша. Статья содержит несколько наглядных схем и приложение для примеров.
-
11.11.2009
Нерегулярные алгоритмы требуют использования задачных пулов, однако при этом возникает проблема активного ожидания, которое неэффективно использует вычислительные ресурсы и не имеет решения в технологии OpenMP. Михаэль Зюсс и Клаудия Леопольд рассматривают варианты задачного пула, которые могут быть реализованы в OpenMP, и сравнивают их производительность. Они также предлагают возможные способы улучшения спецификации OpenMP для решения проблемы активного ожидания.
-
08.10.2009
Данный обширный раздел на сайте Корпорации Microsoft предлагают вниманию программистов большое количество статей и заметок на разнообразные темы, связанные с использованием 64-битных версий Windows, 64-битным программированием в целом и 64-битными платформами, и другие смежные темы. Вы найдете большое количество полезных советов и рекомендаций по работе на 64-битной системе с 64-битной версией Windows.
-
01.10.2009
Данная статья уделяет внимание проблемам, связанным с выравниванием данных применительно к семейству платформ Itanium и платформам x86 и x64 и затрагивает все важнейшие ошибки выравнивания. Автор объясняет, как устроено выравнивание данных, как избежать проблем, связанных с ним, и что делать, если это невозможно. В конце статьи он дает краткий список советов по решению проблем выравнивания данных как резюме всей статьи. Текст сопровождается графиками и примерами кода.
-
30.09.2009
Написанная доступным и живым языком, данная статья затрагивает принципы многопоточного программирования и включает несколько разделов, в которых описываются различные подходы и аспекты этой технологии: многозадачность, основы многопоточного программирования, управление потоками, синхронизация, стратегии, а также параллелизм задач, параллелизм данных, принцип конвейерной обработки, инструменты и библиотеки для работы с многопоточностью, графическое программирование и инструменты отладки. Иными словами, статья затрагивает самые важные моменты многопоточного программирования и будет полезна любому разработчику при его освоении.
-
18.09.2009
Создание нерегулярных параллельных алгоритмов с помощью OpenMP - довольно трудоемкая, но все же реализуемая задача, и данная статья показывает это на примере алгоритма, реализующего механизм поиска по ширине. Основная проблема, которая возникает в данном случае - недостаточная поддержка отмены потоков. Авторы дают описание этого механизма и предлагают способ обойти указанную проблему, а также выдвигают предложения по улучшению спецификации OpenMP.
-
15.09.2009
Данный Wiki-ресурс представляет собой базу данных, содержащую коллекцию различных дефектов и ошибок в сфере высокопроизводительных вычислений, накопленную разработчиками из собственной практики. Все ошибки распределены по нескольким категориям (например, ошибки, связанные с синхронизацией, управлением памятью и т.д.). Поощряются отзывы программистов и разработчиков и пополнение базы дополнительными сведениями о подобных ошибках.
-
05.09.2009
В мире быстро развивающихся технологий программирования очень важно, чтобы все разработчики программного обеспечения пришли к решению, какой стандарт и модель программирования использовать в качестве универсальных в целях экономии времени и денег. The Open Group утверждает, что в сфере 64-битного программирования наилучшим решением будет модель LP64. Это заключение делается на основе результатов анализа и сравнения моделей ILP64 и LP64 по нескольким параметрам, каждый из которых подробно описан и прокомментирован. Среди таких параметров авторы выделяют переносимость, взаимодействие с 32-битными средами, соответствие стандартам, производительность и стоимость перехода.
-
03.09.2009
Wiki-ресурс, посвященный статическому анализу кода. В нем описывается сущность данной технологии и дается много ссылок на другие материалы по инструментам статического анализа и смежным областям.
-
02.09.2009
В данном посте перечисляются некоторые инструменты статического анализа C++ кода, которые могут облегчить разработчикам поиск определенных специфических ошибок, связанных с копированием кода, цикломатической сложностью, а также ошибок программирования общего плана. Автор также дает несколько советов по интеграции инструментов статического анализа в процесс разработки ПО и максимально быстрому поиску свежих ошибок.
-
27.08.2009
Эта статья будет интересна любому пользователю, связанному с программированием на C++, поскольку в ней описывается попытка авторов изучить самые популярные анализаторы С++ кода на основе специальных правил и примеров ошибочного кода, которые анализировались инструментами. База тестирования и его результаты подробно описаны и приведены в таблицах и примерах кода.
-
21.08.2009
Еще одна статья, посвященная использованию статического анализа кода в тестировании программного обеспечения в медицинских устройствах. Авторы объясняют, каким образом статический анализ может быть полезен в послепродажном тестировании и поддержке медицинских устройств, и в качестве примера разбирают результаты тестов, проведенных инструментом CodeSonar.
-
06.08.2009
В своей статье, написанной с изрядной долей иронии, Джек Ганссли затрагивает тему неэффективных инструментов, которые продаются нечестными поставщиками. Он объясняет непростую ситуацию в сфере развития программного обеспечения и рассказывает о стереотипах мышления и поведения, которые царят в среде разработчиков, глав компаний и поставщиков, что приводит к замкнутому кругу, когда нужды покупателей так и остаются не удовлетворенными несмотря на несметное количество рекламы и обещаний.
-
03.08.2009
Очень внушительная статья, посвященная двум темам: архитектуре x64 и операционной системе Windows Vista. В соответствии с этими темами статья состоит из двух разделов. Первый раздел отводится x64 и описывает основные принципы сборки под эту архитектуру, программирования на C/C++ под ней, работы WOW64, взаимодействия процессов и многие другие аспекты. Второй раздел, посвященный Windows Vista, затрагивает принципы работы и усовершенствования данной операционной системы, а также разнообразные инструменты и механизмы обеспечения безопасности, некоторые проблемы, связанные с использованием сред Visual Studio и т.д. Кроме того, есть еще один раздел, в котором описывается технология .NET Framework 3.0 и интерфейсы к ней.Несмотря на то, что эта статья является далеко не полной и подробной, она послужит великолепным источником информации для тех программистов, которые осваивают архитектуру x64 и Windows Vista. Ее плюсы в доступном языке и живом стиле изложения, а также в огромном количестве примеров кода и поясняющих скриншотов.
-
26.07.2009
Создание нерегулярных параллельных алгоритмов с помощью OpenMP - довольно трудоемкая, но все же реализуемая задача, и данная статья показывает это на примере алгоритма, реализующего механизм поиска по ширине. Основная проблема, которая возникает в данном случае - недостаточная поддержка отмены потоков. Авторы дают описание этого механизма и предлагают способ обойти указанную проблему, а также выдвигают предложения по улучшению спецификации OpenMP.
-
26.07.2009
Данная статья представляет собой презентацию, затрагивающей большинство аспектов переноса 32-битного кода на платформу AMD64 под Windows, и включает несколько разделов: технология AMD64, где описываются некоторые особенности данной архитектуры, 64-битная Windows на AMD64, проблемы переноса, увеличение производительности на нескольких процессорах и рекомендации по инструментам и дополнительным ресурсам. Каждая секция содержит схемы, иллюстрирующие тот или иной аспект и основные положения. Главное преимущество данной статьи - в сжатом изложении, которое позволило коснуться множества действительно важных вещей.
-
12.07.2009
В данной статье авторы продолжают исследовать недостатки OpenMP в отношении Си++ кода и предлагают эффективные решения для улучшения технологии. На этот раз в качестве примера, демонстрирующего достоинства и недостатки OpenMP, используется шаблон одноэлементного множества. Авторы рассматривают несколько способов реализации одноэлементного множества с защитой потоков, анализируют возникающие проблемы и предлагают возможные "заплатки" и решения. Также для каждого метода проводятся тесты производительности и в итоге предлагается наилучшее решение.
-
05.07.2009
Статья "64-битный ODBC" предоставляет подробную информацию об использовании 64-битного ODBC на 64-битных платформах Linux, Unix и Windows. Благодаря подробному введению в сферу 64-битности и понятному описанию основных принципов этой технологии и ее преимуществ перед 32-битной, данный документ может послужить отличным руководством для каждого пользователя, который хочет знать, как работать с 64-битным ODBC. Авторы дают подробные инструкции по использованию различных ODBC драйверов на 64-битных платформах Linux, Unix и Windows, сопровождая их хорошими примерами. Кроме того, в статье присутствует секция FAQ, которая охватывает наиболее актуальные проблемы и вопросы, связанные с использованием 64-битного ODBC.
-
04.07.2009
Программисты, планирующие перенастроить проекты, созданные в средах Microsoft Visual Studio, под 64-битную версию Windows на процессорах AMD64, но сталкивающиеся с определенными трудностями, теперь получили хороший шанс реализовать свои планы: статья "Настройка совместимости проектов Microsoft Visual Studio с архитектурой AMD64" предоставляет всю необходимую информацию. В начале, идет перечень инструментов от Microsoft для AMD64, затем даются подробные инструкции и советы по настройке таких сред Microsoft Visual Studio как MVS 6, MVS .NET и MVS "Whidbey" для работы с инструментами командной строки AMD64. Кроме того, отдельный раздел посвящен отладке приложений на AMD64. Статья содержит множество поясняющих скриншотов.
-
23.06.2009
Какой станет модель параллельного программирования через 10 лет? Автор статьи пытается найти ответ на этот вопрос и дает обзор тенденций в современном компьютерном мире, цитируя главных исследователей Microsoft Бертона Смита и Крейга Мунди. Затронуты такие темы как разработка параллельных языков программирования и усовершенствование процессорных чипов.
-
17.06.2009
Хотя данная статья не является руководством, она, тем не менее, будет полезна многим разработчикам, сталкивающимся с задачей переноса 32-битного управляемого кода на 64-битные системы. Вначале кратко объясняются принципы работы 32-битного управляемого кода в 32-битной среде, а затем описываются проблемы его переноса в 64-битную среду с точки зрения нескольких аспектов: использования функции запуска платформы, COM-совместимости, опасного кода, упаковки данных и сериализации. При описании каждого аспекта даются рекомендации и примеры кода.
-
14.06.2009
Автор статьи концентрируется на задаче улучшения процесса разработки C++ кода. Он описывает основные моменты, которые следует учитывать при анализе, отладке и улучшении кода. Сюда относятся использование статического анализа, создание набора юнит- и регрессионных тестов и т.д. Статья содержит четыре раздела, каждый из которых посвящен конкретному методу, и примеры кода.
-
12.06.2009
Статья состоит из двух частей: "Введение в 64-битное программирование" и "64-битное программирование на практике". В первой части вы найдете описание основных различий между 32-битными и 64-битными исполняемыми файлами, интерфейсами Win32 и Win64 и процессорами x86 и x64 с точки зрения использования процессоров AMD64 и EM64T, работающих под 64-битной Windows. Вторая часть затрагивает различные практические аспекты 64-битного программирования и преобразования 32-битного кода в 64-битный, такие как изменения в типах данных, требования по выравниванию, использование Windows-структур в 64-битном программировании, выбор регистра и многое другое, в том числе вопросы оптимизации и доводки кода. В этом разделе даются важные указания и рекомендации по грамотному 64-битному программированию. Обратите внимание, что задача 64-битного программирования рассматривается в данной статье в рамках использования инструментов GoAsm, GoRC и GoLink, однако разработчикам, использующим другие инструменты, она будет также интересна.
-
08.06.2009
Написанная в юмористическом ключе, данная заметка призвана расставить все точки над "i" в вопросах управления памятью. Для тех программистов, которые имеют ложные представления о том, как это происходит, и путают понятия "физическая память", "оперативная память" и "виртуальная память", Эрик Липперт объясняет хитрости функционирования памяти и раскрывает истинные причины ошибки "недостаточно памяти".
-
23.05.2009
Данная статья представляет собой исследование на тему того, как разработчики ядра Linux реагируют на сообщения об ошибках, выдаваемые статическим анализатором кода. Авторы выясняют, что большинство разработчиков предпочитают сортировать сообщения об ошибках по нескольким категориям, и показывают, какие факторы влияют на принятие решения о сортировке определенных типов ошибок или наоборот служат причиной для отказа от сортировки и просмотра соответствующих фрагментов кода. Выводы авторов подкрепляются многочисленными диаграммами и таблицами.
-
21.05.2009
Если вы занимаетесь разработкой 64-битного ПО для 64-битных процессоров AMD, настоящая статья окажется для вас поистине бесценной. Ее основная цель - рассказать об особенностях использования Microsoft Platform Software Development Kit - инструментария, предназначенного для разработки 64-битных приложений под AMD64. Статья состоит из трех глав: в первой главе даются предварительные технические данные и предпосылки использования данного инструментария; во второй главе описывается процесс разработки приложений с использованием Microsoft Visual Studio .NET на 32-битной Windows системе; в третьей - использование Platform SDK при разработке или переносе приложений с применением Microsoft Visual Studio 6. Каждая глава содержит подробный алгоритм по установке и настройке всех необходимых инструментов.
-
18.05.2009
В данной статье затрагивается задача переноса приложения под 64-битный Linux на серверах HP Integrity. Она включает много разделов, описывающих основные проблемы, с которыми программист может столкнуться при переносе. Например, рассказывается о таких проблемах, как порядок байтов, стандартные определения типов, назначение указателей, сдвиг битов и т.д. В статье также имеется краткий список инструментов, которые могут помочь программисту в переносе приложений (Intel C++ Compiler, GCC, GDB, DDD, Splint). Текст снабжен множеством поясняющих таблиц и примеров кода.
-
05.05.2009
Данный раздел FAQ служит кратким введением в технологию OpenMP и ее использование на компьютерах HPCVL Sunfire SMP. Он дает развернутые ответы на десять наиболее часто задаваемых вопросов об этой технологии, затрагивающих принципы работы и реализации, примеры использования и т.д. Ответы содержат полезные ссылки для получения большей информации.
-
13.04.2009
Совсем небольшая заметка о переносе 32-битного кода на 64-битную платформу, касающаяся некоторых проблем, на которые разработчики должны обратить внимание (использование типов данных, различающихся в 32-битном и 64-битном режимах) и дает пару советов по использованию модификатора printf.
-
12.04.2009
Перенос кода на 64-битные платформы сопровождается специфическими проблемами, связанными с изменениями размеров базовых типов и их взаимодействием. Ирвинг Рабин объясняет в своей статье, какие основные и наиболее серьезные проблемы могут возникнуть в ходе миграции кода и как решать их, используя инструменты статического анализа, чтобы сделать код архитектурно независимым. Автор затрагивает такие проблемы как изменение размеров указателей и типа long, преобразование указателей в типы integer, проблемы заполнения и некоторые другие. В статье даются рекомендации и правила для решения этих проблем и объясняются подходы, основанные на использовании статического анализа, для каждого случая.
-
29.03.2009
В своей статье Херб Саттер обсуждает проблему параллелизма - очередной приближающейся революции в сфере разработки программного обеспечения, - его предпосылок, последствий и стоимости. Большая часть статьи посвящена анализу текущего состояния в компьютерной индустрии и объяснению, почему последовательные программы больше не могут извлекать выгоду из растущей производительности и должны уступить место параллельным (в первую очередь многопоточным) приложениям, а также - как быть с этой проблемой. Статья написана живым и ироничным языком, но в то же время является действительно серьезным и подробным обзором наступающих перемен. Безусловно, она будет интересна и полезна для всех разработчиков.
-
29.03.2009
Автор данной заметки приводит список инструментов для анализа C++ кода, в котором он перечисляет разнообразные коммерческие и некоммерческие инструменты. Для каждого пункта имеется краткое описание и ссылка на соответствующий сайт.
-
24.03.2009
В этой статье авторы представляют обзор наиболее распространенных ошибок, которые программисты-новички допускают при использовании технологии OpenMP. Все ошибки распределены по двум группам: ошибки корректности работы и ошибки производительности. Все они подробно объясняются и демонстрируются, а затем приводятся советы, как избежать их в дальнейшем. Авторы также дают информацию о том, какие компиляторы могут отслеживать эти ошибки, а какие нет.
-
16.03.2009
Эффективное использование потоков данных - ключ к высокой производительности, и Херб Саттер подробно рассказывает о проблеме усовершенствования данного инструмента параллельного программирования с помощью изолирования данных и работы каждого потока. В статье обсуждаются методы улучшения кода с несколькими потоками на примере трех стандартных ситуаций: GUI-приложений, каналов связи между клиентами и сервером и конвейерной обработки. Для каждого случая приводятся примеры кода и подробное объяснение с инструкциями, как улучшить этот код, используя специальные методы.
-
12.03.2009
Статья посвящена типу size_t и его правильному использованию. В рамках этой статьи автор объясняет проблему переносимости кода и рассказывает, как использовать size_t для повышения переносимости, работоспособности и удобочитаемости кода, который вы хотите перенести.
-
07.03.2009
Керри Д. Уонг демонстрирует различия в производительности Си++ кода при выполнении операции матричного умножения с использованием OpenMP и библиотек uBLAS, cBLAS и MATLAB. Он приводит примеры кода с внесенными изменениями и комментирует их, делая выводы об изменениях производительности. В конце статьи дается таблица сравнения полученных результатов.
-
03.03.2009
Статья затрагивает проблемы переноса 32-битного кода в 64-битную среду в рамках 64-битной архитектуры Intel. Эндрю Бинсток касается таких актуальных проблем как изменение размеров базовых типов: указателей, int и long на различных платформах, перенос драйверов устройств и совместимость двоичных файлов. В тексте статьи также часто встречаются ссылки на полезные ресурсы, посвященные обсуждаемым проблемам.
-
26.02.2009
Долгое сотрудничество между Linux и процессорами Intel сделало возможным почти безболезненный перенос Linux-приложений на 64-битный процессор Intel Itanium. В статье подробно рассматривается каждый этап этого процесса и дается множество рекомендаций по разным его аспектам: использование команд, типов данных, избежание проблем, связанных с уплотнением, заполнением и выравниванием данных, и т.д. Каждый пункт проиллюстрирован примерами кода.
-
23.02.2009
Написанная в несколько ироничном ключе, статья рассматривает причины нехватки качественного 64-битного программного обеспечения в быстро развивающемся мире 64-битных процессоров. Автор цитирует некоторых известных разработчиков программного обеспечения, работающих в различных компаниях, и приходит к выводу, что основная причина указанной проблемы - в отсутствии мотивации для полноценного перехода на 64 бита. Статья будет интересна всем программистам и пользователям, имеющим дело с 64-битными компьютерами.
-
19.02.2009
Сегодня, когда надежность системы зависит больше от программного обеспечения, чем от "железа", очень важно повышать качество встроенных программ. Статический анализ является прекрасной методикой для этой цели. В статье приводится классификация инструментов статического анализа и описываются некоторые наиболее популярные инструменты для различных целей (инструменты общего назначения, инструменты для Java и инструменты для контроля безопасности). Еще один раздел статьи посвящен вопросам интеграции статического анализа в процесс разработки программного обеспечения и объясняет каждый этап этой процедуры. Текст содержит поясняющие схемы и примеры кода.
-
17.02.2009
Так называемая задача N ферзей - хороший и интересный пример для демонстрации использования различных новых и старых методов распараллеливания, имеющихся в инструменте Intel Parallel Composer. Статья состоит из трех разделов. В первом разделе объясняется задача и алгоритм ее решения. Во втором разделе предлагается множество способов распараллелить решение и перечисляются достоинства и недостатки каждого из них. Третий раздел приводит сравнение этих методов. Статья снабжена большим количеством примеров кода и поясняющими скриншотами, и будет интересна каждому, кто задействован в сфере параллельного программирования.
-
12.02.2009
В данной заметке автор объясняет, как настроить Visual C++ 2008 Express Edition для компиляции с его помощью приложений под 64-битную Windows. В заметке даются подробные инструкции и советы, как использовать возможности компилятора в полной мере. Как замечает автор, несмотря на то, что предложенное им решение может быть довольно опасным, оно стоит того, чтобы использовать его.
-
30.01.2009
В своей заметке автор затрагивает проблему неправильного поведения многопоточного приложения, разработанного для запуска на одном процессоре, при работе на нескольких процессорах, и рекомендует два инструмента для управления параллельным исполнением программ: Erlang и Intel's compiler suite.
-
23.01.2009
Отсутствие полноценной поддержки инструкции CPUID в среде Microsoft Visual Studio .NET 2005 на платформах x64, побудило автора написать три примера кода, демонстрирующие более эффективное использование функций _CPUID и _RDTSC в 64-битном режиме, сопроводив их подробными комментариями.
-
21.01.2009
В данной статье, автор обращается к проблеме так называемого гибкого планирования потоков и описывает принцип реализации данной технологии. Он также касается программирования с использованием QuickThread и объясняет, как использовать гибкое планирование с наилучшим результатом.
-
16.01.2009
В данном докладе автор обсуждает использование OpenMP, в частности библиотечных функций и переменных среды, а также дает несколько советов по повышению быстродействия и отладки OpenMP-приложений. Все эти аспекты выделены в специальные разделы, снабженные примерами кода или пояснительными таблицами. Также в статье вкратце упоминаются инструменты Intel Thread Checker и Thread Profiler, которые помогают работать с OpenMP-приложениями. Статья будет интересна любому программисту, работающему с технологией OpenMP.
-
13.01.2009
Данная статья охватывает широкий спектр аспектов 64-битного программирования на Visual C++: она включает таблицу с описанием 64-битных компиляторов для двух платформ Windows на основе x64 и Itanium, краткий обзор некоторых особенностей процессора Itanium, проблем миграции 64-битного кода в Visual C++, инструментов для миграции, изменения в C++ библиотеках и многое другое. Большинство разделов содержат ссылки на полезные ресурсы. Также есть большой раздел FAQ, охватывающий многие стороны разработки под 64-битном Windows.
-
28.12.2008
В статье затрагиваются проблемы, связанные с OpenMP-программами. На примере кода автор объясняет, с какими проблемами программист может столкнуться и как использовать инструменты Intel Threading Tools (Intel Thread Checker и Intel Thread Profiler) для облегчения распараллеливания проекта. Вы также найдете несколько советов, что делать с неравномерным распределением нагрузки и влиянием синхронизации. Статья снабжена подробными примерами кода и скриншотами и будет интересна любому разработчику, имеющему дело с технологией OpenMP и многопоточными приложениями.
-
21.12.2008
В данной статье с таким провокационным заголовком обсуждается рациональность отказа от технологии OpenMP и способ "убить" ее к 2011 году, если смысл в этом шаге все же есть. Написанная в юмористическом ключе, статья раскрывает точку зрения автора на данную проблему: OpenMP все еще популярна и вполне работоспособна, так что единственный способ избавиться от этой технологии - позволить ей исчезнуть самой, когда она перестанет отвечать растущей сложности компьютерных технологий.
-
11.12.2008
В этой статье автор касается такой специфической возможности Visual C++ как использование псевдо-переменных и спецификаторов формата. После краткого описания различий между процессорами архитектур x86 и x64, Кенни Керр предлагает список наиболее полезных псевдо-переменных и поясняет их функции. Точно так же он перечисляет некоторые спецификаторы формата и их назначение. Кроме того, дается несколько примеров, как можно использовать псевдо-переменные и спецификаторы формата в визуализации соглашений о вызовах, кодах ошибок и отладке в контексте безопасности.
-
03.11.2008
Поскольку ошибки в коде делают его уязвимым для атак, он должен тщательно тестироваться для того чтобы соответствовать требованиям безопасности. Автор рассказывает про такие распространенные слабые места в коде на уровне реализации программы, как состояния гонки, отсутствие проверки входных данных, исключения, атаки с помощью SQL и переполнения буфера. Далее он касается темы экспертной оценки кода, анализа методами белого и черного ящиков, а также анализа метрик. В конце статьи даются ссылки на список инструментов анализа кода и дополнительную информацию по теме.
-
26.10.2008
Настоящая заметка описывает поэтапно процесс сборки 64-битного запускающего файла с использованием Visual Studio 6. Всего таких этапов пять, и каждый из них подробно разъясняется. Кроме самих инструкций вы найдете некоторые полезные советы по отладке перенесенного проекта и не менее полезные ссылки по проблемам перехода на 64 бита.
-
24.08.2008
Статья "32-битные указатели в 64-битном мире" затрагивает актуальный вопрос эффективного использования 32-битных указателей в 64-битной среде с целью прироста производительности. Автор описывает принципы работы функции 'sptr', предназначенной для выравнивания данных, а также особенности и ограничения ее использования. Статья содержит большое количество наглядных и подробных примеров кода, иллюстрирующих механизмы кодирования 64-битных указателей в 32-битные.
-
08.08.2008
В этом интервью Адам Колава, главный исполнительный директор и сооснователь корпорации Parasoft, делится советами о том, как использовать статический анализ кода с наибольшей эффективностью. Он подробно рассказывает о таких трех главных разновидностях статического анализа как статический анализ на основе паттернов, статический анализ потока данных и метрики кода, а также дает рекомендации по правильному использованию статического анализатора при разработке и автоматизации процесса анализа кода.
-
15.07.2008
Очень полезный документ, предоставляющий сведения об основных проблемах, связанных с разработкой драйверов для 64-битных версий Windows. Он включает предварительные инструкции по подготовке к работе, технические данные, касающиеся типов данных и памяти, советы и указания по созданию и переносу драйверов. Многие пункты дополнены наглядными примерами кода, иллюстрирующими некоторые из описанных проблем.
-
30.06.2008
Автор данной короткой заметки объясняет, каким образом параллелизм позволяет высвободить потенциал многоядерных систем и почему технология OpenMP лучше всего подходит для этой цели. Он перечисляет основные выгоды многопоточности и преимущества OpenMP, а также приводит ссылки на ресурсы по этой технологии.
-
11.06.2008
Параллельное программирование связано со многими трудностями и проблемами, особенно в отношении диагностики дефектов и узких мест в параллельных приложениях. Авторы данной статьи рассказывают о наиболее часто возникающих проблемах, таких как состояния гонки, взаимные блокировки и ошибки организации памяти, а затем касаются некоторых стратегий тестирования и дают рекомендации по наиболее эффективному их использованию. Они также советуют некоторые инструменты, которые помогут вам в процессе тестирования параллелизма (CHESS, The Intel Thread Checker, Chord, KISS, Zing) и приводят список характеристик, на которые надо обратить внимание при тестировании производительности. Другими словами, статья содержит всю необходимую информацию по вопросам диагностики дефектов параллелизма и повышения производительности параллельных приложений.
-
20.05.2008
Настоящая статья посвящена технологии анализа BugDetective от корпорации Parasoft, которая предоставляет разработчикам такие преимущества как возможность быстрой модификации кода, гибкая система тестирования, сосредоточение на реальных ошибках и дефектах и т.д. В статье очень подробно описывается принцип работы BugDetective и способы ее использования в сочетании с другими методами тестирования. В тексте содержится множество пояснительных примеров кода и скриншотов.
-
14.05.2008
Переполнения стэка могут быть очень опасными в системах с высоким уровнем интеграции, их сложно обнаружить и отладить, поэтому очень важно предотвратить их появление, проведя анализ стэка заранее. В этой статье рассказывается, каким образом статический анализ стэка может помочь в решении данной задачи, какие обстоятельства могут препятствовать его успешному осуществлению, а также приводится несколько советов, как можно использовать компилятор и специальный инструмент AdaCoreТs GNATstack при анализе стэка.
-
29.04.2008
Статья затрагивает тематику статического анализа и использования инструмента статического анализа кода IBM Rational Software Analyzer. Описывается методика статического анализа в целом и ее преимущества, а также реализация инструмента IBM Rational Software Analyzer. Пользователю предоставляется подробная пошаговая инструкция, как задать правила для анализа, установить конфигурацию анализа, провести его и просмотреть результаты, как экспортировать данные или создать по ним отчет и т.д. Каждый шаг иллюстрируется скриншотами.
-
11.04.2008
Индустрия компьютерных игр может значительно выиграть от перехода на 64-битные процессоры, и Microsoft Game Technology Group решила поделиться с разработчиками игр важной информацией по переносу 32-битного кода на 64-битные платформы. Статья затрагивает основные проблемы, касающиеся таких аспектов как усечение указателей, типы данных и двойные файлы, старые интерфейсы прикладных приложений Win32 и выравнивание данных, ассемблерный код и непопулярные интерфейсы и т.д., а также дает несколько советов, как избежать этих проблем и улучшить быстродействие игр.
-
21.03.2008
Джон Уэст представляет обзор телеконференции, посвященной заявлению Intel и Microsoft о создании двух исследовательских центров, которые сконцентрируются на поиске путей улучшения технологии параллельного программирования и самого "образа мышления" программистов, а также применяемых ими техник параллельного программирования. Автор поясняет некоторые моменты в данном вопросе и цитирует высказывания некоторых участников конференции. Так, в частности, основной целью исследовательских центров является совершенствование основного направления в компьютерной индустрии. Автор также делает некоторые выводы о положительных последствиях сделанного Intel и Microsoft шага.
-
03.11.2007
Несмотря на то, что 64-битные процессоры предоставляют доступ к 64-битному адресному пространству виртуальной памяти, современным компьютерам пока не требуется такой объем. В силу этого, а также в целях упрощения архитектуры, спецификация AMD64 позволяет адресовать только 48 бит, в то время как ограничение по адресации в Windows составляет 44 бита. Автор объясняет, каким образом использование битов, нереализованных в современных процессорах, во вспомогательных целях может привести к непредсказуемым результатам, и советует заранее предусматривать возможные проблемы и создавать масштабируемые приложения.
-
20.09.2007
This brief note describes a common mistake of assuming that there is synchronization between the threads entering a worksharing construct when a FIRSTPRIVATE variable is used.
-
11.09.2007
В эпоху, когда многопоточное программирование становится все более распространенным, важно, чтобы разработчики знали о технологиях, предназначенных для его упрощения. Данная статья подразумевается как краткое введение в технологию OpenMP, но она достаточно объемна и включает несколько разделов, освещающих разнообразные важные моменты. Прежде всего, в статье объясняется принцип реализации OpenMP, основанной на pragma-директивах, и затрагиваются следующие вопросы: синтаксис, безопасность потоков, совместное использование данных, синхронизация исполнения и вложенность циклов. Каждый раздел содержит большое количество поясняющих примеров кода и описаний директив и операторов, применяемых с той или иной целью. Также даются некоторые советы по устранению дефектов. Статья послужит хорошим источником базовой информации о технологии OpenMP.
-
06.08.2007
В статье "Что усложняет параллельное программирование" автор обращается к одноименной статье Анвара Гулома и добавляет несколько новых пунктов в список факторов, усложняющих параллельное программирование в сравнении с последовательным. Помимо таких факторов как обнаружение параллелизма, устранение ошибок, повышение производительности, оценка перспективы и применение современных методов программирования, упомянутых Анваром Гуломом, Михаэль Зюсс называет также сложность и склонность параллельного программирования к ошибкам, недостаток знания инновационных систем параллельного программирования и многое другое.
-
03.08.2007
Что усложняет параллельное программирование? Автор статьи с одноименным названием отвечает на этот вопрос, исходя из собственного опыта программирования, и перечисляет несколько факторов в порядке возрастания их сложности. Это обнаружение параллелизма, устранение ошибок, повышение производительности, оценка перспективы и применение современных методов программирования. Прибегая к логическому объяснению и приводя живые примеры, автор убедительно доказывает свою точку зрения.
-
11.06.2007
Иногда программист может столкнуться с ситуацией, когда невозможно перенести библиотеку DLL на 64-битную систему вместе с основным модулем, а доступ к ней по-прежнему необходим. В этой статье объясняется, как его можно получить, используя COM-объект, и рассказывается, какие моменты следует принять во внимание при этом - в частности проблемы выравнивания, типов данных, использования функции COM initialize, вопросы безопасности, быстродействия, процесса перенаправления в подсистеме WOW, переноса модулей ядра и реализации процедуры установки.
-
02.05.2007
Статья посвящена проблеме перенесения зависимости в цикле при распараллеливании или оптимизации цикла for. Автор описывает различные решения для устранения этой проблемы и возникающие трудности, которые он демонстрирует на примерах кода.
-
17.04.2007
Написанная живым языком, статья представляет собой обзор преимуществ 64-битной технологии перед 32-битной, и в частности затрагивает 64-битные операционные системы Windows. В статье несколько разделов, которые посвящены описанию основных особенностей 64-битных Windows-систем и проблем, связанных с их использованием, а также обзору некоторых проблем 64-битного переноса и рекомендаций по миграции приложений. Несмотря на краткость, статья сообщает полезную информацию о том, как решать 64-битные проблемы. Кроме того, она содержит несколько интересных примеров кода.
-
19.03.2007
Несмотря на свою молодость, платформа AMD64 предоставляет огромное количество разнообразных инструментов для операционной системы Linux. В статье "Linux-инструментарий для AMD64-разработчиков" кратко рассматриваются некоторые компиляторы и отладчики Linux разных производителей для платформы AMD64 с описанием их характерных черт и возможностей. Статья также снабжена скриншотами некоторых инструментов.
-
11.01.2007
Цель данной статьи - познакомить пользователя с основами OpenMP. Автор предлагает обзор pragma-директив, процедуры исполнения и переменные среды OpenMP и иллюстрирует их применение на примерах. Она также дает некоторые советы по поводу того, какие инструменты и методы можно использовать, чтобы справиться с некоторыми ошибками и повысить производительность и безопасность кода.
-
01.11.2006
Внедрение статического анализа в процесс разработки программного обеспечения дает программисту много преимуществ. В статье предлагается обзор наиболее популярных инструментов статического анализа в нескольких классификациях, включая инструменты для анализа языка Java, инструменты для проверки безопасности кода и т.д. Авторы также обращают внимание на различные аспекты внедрения статического анализа, такие как создание стандарта кодирования, реализация автоматической проверки, процесс оценки кода, сохранение результатов, работа с новым и устаревшим кодом, а также вопрос обучения разработчиков.
-
17.10.2006
При быстро развивающейся технологии параллельного программирования, необходимо, чтобы стандарт языка Си++ обеспечивал адекватную поддержку этой технологии. В статье описывается встреча специалистов в области Си++, посвященная обсуждению проблем создания стандарта поточной обработки данных для следующей версии языка. Были затронуты такие проблемы, как выбор модели памяти, синхронизация потоков, запуск и слияние потоков, а также работа с исключениями. В статье рассказывается о самых важных выступлениях и предложениях некоторых членов встречи.
-
10.10.2006
Цитируя афоризм Джорджа Сантаяны "Тот, кто не помнит своего прошлого, осужден на то, чтобы пережить его вновь", автор предлагает подробный обзор истории развития компьютерной индустрии от ранних решений и технологий до современных проблем 64 бит с целью сформулировать уроки прошлого, которые стоит усвоить. Написанная живым и в некоторой степени ироничным языком, статья содержит серьезный и детальный анализ решений, тенденций и ошибок прошлого; особое внимание уделяется развитию технологии 64 бит и проблемам, связанным с ней.
-
06.10.2006
Данный пост касается метода поиска дефектов в строках исходного кода самых разнообразных проектов с помощью нового инструмента поиска исходного кода Google Code Search. Автор объясняет, как можно легко находить ошибки в коде, вводя в строке поиска определенные выражения и символы. В посте дается несколько примеров, которые наглядно демонстрируют применение описанной техники.
-
20.09.2006
В своей краткой заметке, Михаэль Зюсс рассматривает возможность вызова функции once в OpenMP, где до сих пор такой механизм не реализован. Он приводит примеры кода, объясняя, как сделать это лучше всего.
-
14.09.2006
Статья предназначена для Linux-разработчиков, которые планируют разрабатывать 64-битный код для процессоров AMD64. Автор предлагает краткий обзор основных программных инструментов для Linux, уделяя особое внимание набору инструментов с открытым кодом GNU. Вы познакомитесь со списком некоторых новых ключей командной строки, необходимых каждому разработчику 64-битного программного обеспечения и другими полезными функциями. Кроме того, описан инструментарий GCC Binutils, предназначенный для работы с бинарными файлами. В заключение автор перечисляет некоторые другие ценные инструменты для Linux.
-
11.09.2006
Статья, представленная в двух частях, знакомит читателей с основами технологии OpenMP и описывает различные #pragma директивы, применяемые в ней, а также принципы работы с переменными, параллельными потоками и секциями. Автор приводит большое количество примеров кода и подробные объяснения и советы, как решать проблемы, представленные в них. Статья безусловно будет полезна всем разработчикам, делающим первые шаги в OpenMP.
-
21.08.2006
В статье сравниваются функция scoped locking и директива critical в OpenMP, которые обе служат для работы с взаимными исключениями. Сравнение проводится по нескольким пунктам, которые проиллюстрированы примерами кода. После этого делается вывод, какая из двух методик лучше.
-
12.08.2006
Если вы сомневаетесь, что OpenMP является лучшей системой параллельного программирования на языках Си/Си++ и Fortran, прочитайте статью Михаэля Зюсса, где он раскрывает три причины, по которым стоит остановиться на этой технологии: высокий уровень абстракции, высокая производительность и зрелость системы. Написанная непринужденным языком, статья может послужить замечательным кратким обзором основных достоинств OpenMP.
-
01.08.2006
Данный wiki-ресурс посвящен инструментам статического анализа кода для наиболее популярных языков программирования. В нем вы найдете список различных инструментов, как с открытым кодом, так и коммерческих, с краткими описаниями и полезными ссылками на другие ресурсы.
-
30.06.2006
Как пишет Джон Пол Меллер, "многих разработчиков не страшит задача переноса приложений с 32-битной платформы на 64-битную; проблема в том, что они не знают, как начать". В данной статье, автор предлагает 24 совета, которые стоит принять во внимание перед началом переноса. Они охватывают самые различные аспекты переноса приложений, начиная с советов по использованию структур и типов данных и заканчивая рекомендациями по созданию удобных инсталляционных пакетов, дружелюбных для 64-битной системы. Несмотря на краткость этих указаний, в них вы найдете всю необходимую информацию.
-
28.06.2006
Интересная статья, посвященная предпринятому Microsoft эксперименту по замене 32-битных Интернет-серверов 64-битными серверами с 64-битным процессором AMD Opteron и платформой Windows Server 2003 x64 Edition. Помимо понятного и яркого языка, большим плюсом данной статьи является подробный анализ причин такого шага со ссылками на доклад, опубликованный Microsoft, и глубокое изучение его удивительных результатов.
-
28.06.2006
Среда Visual Studio 2005 предоставляет разработчикам хорошую возможность легко создавать 64-битные версии приложений. Статья объясняет, как использовать эту возможность с наилучшим результатом. Автор дает основные рекомендации по настройке среды .NET Framework, рассказывает, где приобрести ее 64-битную версию и 64-битные инструменты, а также затрагивает некоторые специфичные для 64-битных .NET приложений проблемы, такие как использование вызовов PInvoke, COM компонентов и генератора отчетов Crystal reports.
-
27.06.2006
В своей статье Андерсон Бейли объясняет, каким образом 64-битный режим способствует ускорению арифметики и, следовательно, быстродействию приложений со сложной арифметикой. Он дает краткое описание принципов и целей трех типов арифметики, используемых в 32-битном режиме (GPRs, x87 registers и SIMD registers) и анализирует механизмы повышения их производительности в 64-битном режиме, предоставляемые архитектурой AMD64. Автор также делает некоторые выводы по поводу тех областей разработки программного обеспечения, для которых такое ускорение арифметики будет особенно полезным.
-
12.05.2006
Разработчики Linux-приложений, перед которыми стоит задача переноса своих программ на 64-битную архитектуру, найдут много полезного в этой статье. Начиная с краткого обзора ограничений 32-битной архитектуры и преимуществ 64-битной, автор затрагивает особенности 64-битной Linux архитектуры и затем дает множество ценных советов для решения разнообразных типичных проблем перехода с 32-битной системы на 64-битную, касающихся описаний, выражений, присваиваний, численных констант и многих других аспектов. Каждый пункт проиллюстрирован примером кода.
-
11.05.2006
Мэтт Питрек делится с разработчиками своим опытом работы с Win64 и архитектурой x64 и предоставляет полезную информацию по 64-битному программированию. Статья состоит из трех основных частей. В первой части автор обсуждает некоторые подробности реализации Windows на архитектуре x64, включая такие вопросы как объем памяти, адресного пространства, работа с исключениями и т.д. Вторая часть касается набора инструкций самой архитектуры x64. Третий раздел посвящен разработке под x64 в среде Visual C++ и включает инструкции по настройке среды, решению некоторых проблем адаптации приложения под Win64 и его отладке. Статья содержит большое количество примеров кода и поясняющих таблиц и скриншотов. Выразительный стиль изложения - также одно из достоинств данной статьи.
-
11.05.2006
Как видно из заголовка, данная статья предназначена для разработчиков, занимающихся созданием приложений, инструментальных средств компилятора и виртуальных машин под многопроцессорные системы AthlonT 64 и OpteronT на архитектуре ccNUMA под операционной системой Windows. Во введении автор обсуждает преимущества архитектуры ccNUMA перед традиционными симметрическими многопроцессорными системами. Далее он описывает экспериментальное окружение, в котором проводились испытания быстродействия, а также дает указания по чтению и интерпретации графиков. В следующем разделе дается детальный анализ результатов предпринятого теста на синтетической схеме и рекомендации по увеличению быстродействия, касающиеся распределения потоков, расположения данных и совместного использования строк кэша. Кроме того, автор развенчивает некоторые "мифы" относительно "прыжков" при обращении к памяти. Большой плюс данной статьи - доскональное изучение проблем быстродействия и понятное изложение результатов. Многие рекомендации также снабжены графиками.
-
11.04.2006
Статья касается проблем, с которыми сталкивается разработчик при переносе 32-битного приложения на процессор x64, и включает несколько разделов, в которых объясняются причины для осуществления переноса, приводятся некоторые факты, которые стоит принять во внимание, и описываются этапы переноса приложения на 64-битную платформу. Статья затрагивает только общие моменты и в довольно краткой форме, однако она может оказаться хорошим введением в проблему переноса 32-битных Си++ приложений на платформу x64 для тех, кто с ней только столкнулся.
-
31.03.2006
В своей статье Аллан МакНотон затрагивает проблемы взаимодействия 32-битных и 64-битных процессов в смешанных приложениях, которые служат одним из способов преодолеть пропасть между 32-битным и 64-битным режимами. Автор уделяет особое внимание WOW64 и описывает принцип его работы, а также приводит типичный пример проблемы взаимодействия, вызванной смешанным использованием 64-битных указателей и общей памяти.
-
24.03.2006
Вам хотелось бы увидеть универсальный магазин, в котором есть все, что необходимо для разработки 64-битного программного обеспечения? Такое место существует - AMD Developer Central. С помощью Аллана МакНотона вы узнаете о преимуществах этого ресурса, а также огромном количестве услуг и инструментов, которые там предлагаются. Например, для многих разработчиков хорошей новостью будет то, что теперь такие популярные инструменты как AMD CodeAnalyst, AMD Core Math Library и AMD SimNow, применяемые для повышения производительности кода, при написании низкоуровневого кода и т.д., абсолютно бесплатны. А ведь существует еще очень много других областей, в которых вы сможете преуспеть благодаря AMD Developer Central.
-
23.03.2006
В небольшой записи в своем блоге автор рассказывает об идее освещать проблематику 64-битного программирования для широкой аудитории. Как видим, эта идея вылилась в своего рода еженедельный электронный журнал "64-битный Инсайдер", который предоставляет интересные сведения обо всем, что связано с 64-битным программированием. Основной плюс этих публикаций - в их легком для восприятия языке, так что даже новички в сфере миграции приложений и разработки 64-битного программного обеспечения смогут вынести много полезного из этих материалов.
-
01.03.2006
Ник Винхольт предлагает вам свою помощь в освоении анализатора C/C++ кода, который поставляется в комплекте с Visual Studio Team System (VSTS). В статье объясняется, почему статический анализ необходим для C/C++ приложений, и как запустить и использовать эту функцию в VSTS.
-
01.02.2006
В этой статье авторы делятся своим опытом по переносу приложения с поддержкой 11 операционных систем в 64-битную среду. Исходя из этого опыта, они выделяют две главные проблемы кросс-платформенной миграции: несоответствие типов integer, long и указателей и скрытые описания функций. Они также затрагивают некоторые скрытые проблемы, а в конце статьи дают ценные советы по улучшению кода и приводят список полезных 64-битных инструментов и техник. Статья будет интересна всем программистам, и в особенности - тем, кто сталкивается с задачей переноса кросс-платформенных приложений с большим кодом на 64-битные системы.
-
13.12.2005
Статья затрагивает тему поддержки технологии OpenMP в программном обеспечении от Sun Studio. В первом разделе описываются принцип работы OpenMP, ее модель исполнения и директивы. Во втором разделе объясняется, как реализована поддержка OpenMP в компиляторе и некоторых наиболее важных инструментах Sun Studio. В статье также обсуждаются вопросы производительности OpenMP приложений. Текст снабжен поясняющими графиками и схемами.
-
10.12.2005
В своем блоге автор касается темы технологии OpenMP с точки зрения технологии многопотоковых чипов (CMT), которая должна стать весьма распространенной в ближайшее будущее. В посте дается обзор OpenMP, перечисляются ее основные преимущества перед другими методами распараллеливания и приводятся некоторые советы по ее изучению и применению.
-
11.10.2005
Технология OpenMP позволяет разработчикам создавать многопоточные приложения быстрее и с меньшими усилиями. Авторы данной статьи хотят рассказать об основных особенностях данной технологии, знакомя пользователя с конструкциями OpenMP (в частности pragma-директивами для синхронизации и процедур среды исполнения) и освещая некоторые вопросы, связанные с использованием общих и частных данных, алгоритмами планирования потоков и реализации параллелизма без циклов. Статья снабжена большим количеством примеров кода и пояснениями, как использовать те или иные конструкции.
-
01.10.2005
Ошибки работы с памятью могут стать причиной большого количества проблем при миграции на 64-битные платформы. Рич Ньюман хочет поделиться некоторыми рекомендациями о том, как исправить ошибки памяти перед переносом приложения. Он касается природы сложностей, возникающих при переходе на 64 бита, и поэтапно объясняет, как обнаруживать и исправлять ошибки с помощью, так называемого мутационного тестирования. Вы также найдете несколько советов по обнаружению проблем в самом 64-битном коде.
-
07.03.2005
В своей небольшой, но содержательной статье Конрад Картер обращает внимание на эффективное использование ключей в компиляторах C/C++ для обеспечения набольшей производительности и хорошей переносимости 64-битного кода. Конкретно, он рассматривает компиляторы Visual C++ 2005 и gcc 3.3.3. Для каждого компилятора приводится список наиболее полезных ключей, а также подробные инструкции по их использованию. В заключение автор коротко касается библиотеки AMD Core Math Library.
-
28.02.2005
Как пишут авторы, "сегодняшний мир параллельного программирования многообразен и сложен", поэтому они решили дать небольшой обзор текущего состояния этой области. Для этой цели они предлагают создать три проекта, состоящие в том, чтобы провести опрос среди программистов и ученых относительно разнообразных аспектов технологии параллельного программирования, сравнении различных систем параллельного программирования с помощью стандартного набора тестов, а также создании вики-ресурса, который послужит лучшим источником информации по всем вопросам, которые могут возникнуть касательно этой технологии.
-
31.01.2005
Еще одна короткая заметка в блоге Рэймонда Чена, где он объясняет причины выбора командой Win64 модели данных LLP64, демонстрируя на примере рациональность такого выбора.
-
11.01.2005
Как известно, основной причиной проблем, возникающих при преобразовании 32-битных приложений в 64-битные, является изменение размеров типов long и указателей. Исходя из этого, авторы статьи предлагают несколько очень полезных правил использования типов, соблюдение которых поможет вам избежать данных проблем. Они затрагивают разнообразные методы улучшения кода и проиллюстрированы подробными примерами.
-
19.10.2004
Перенос приложений под 64-битный режим процессора PowerPC 970FX - специфическая задача, и Мэтт Тирлик хочет поддержать разработчиков и помочь им решить основные проблемы, связанные с переносом существующего 32-битного кода на новую вычислительную модель. Статья состоит из трех разделов. В первом разделе описываются основные проблемы, с которыми можно столкнуться при переносе программ на языке C под 64-битный режим процессора PowerPC 970FX. Здесь затрагиваются изменения типов данных, адресная арифметика, указатели функций и опции компилятора. Вторая часть посвящена проблемам переноса 32-битных приложений на ассемблере в 64-битный режим и касается TOC-программирования, объектов данных и вызовов функций ассемблера и т.д. Третий раздел описывает необходимые изменения для программ системного уровня. Текст снабжен большим количеством примеров кода.
-
21.07.2004
Перенос кодеков мультимедиа в 64-битную среду сопровождается некоторыми трудностями, но когда он производится грамотно, то дает большой прирост производительности. Статья акцентирует внимание на проблемах переноса и способах их решения. Она состоит из двух частей: "Трудности переноса" и "Методы оптимизации". В первом разделе автор описывает препятствия, с которыми разработчик может столкнуться перед началом переноса, и дает несколько советов, как избежать их: это использование команд SSE/SSE2 вместо MMX и 3DNow!, встроенных средств вместо встроенных блоков на ассемблере и использование переносимых масштабируемых типов данных. Второй раздел затрагивает несколько методов оптимизации процесса переноса. Они включают в себя использование расширенных 64-битных регистров общего назначения, развертывания циклов, выровненные обращения к памяти и многое другое. Каждый метод подробно описан и проиллюстрирован схемами и примерами кода различных кодеков. Кроме того, в статье содержится заметка об инструментах для оценки переноса и производительности кодеков, и особое внимание уделяется инструменту CodeAnalyst.
-
20.01.2004
Данная статья рассматривает арифметику с плавающей запятой для числового расчета на примере сложения квадратных корней на различных архитектурах. Результаты вычисления подробно сравниваются и описываются в таблицах. Также обсуждаются проблемы уровня точности и того, что считать "правильным" результатом. Статья будет интересна для каждого программиста, сталкивающегося с вычислениями с плавающей запятой.
-
14.01.2004
В этой короткой заметке в блоге Рэймонд Чен затрагивает архитектуру AMD64 и дает несколько советов по работе с ее регистрами, сопровождая их примерами кода.
-
11.11.2001
Исходя из собственного опыта по модификации приложения Nile для 64-битной версии Microsoft .NET Advanced Server, автор обсуждает проблему переноса приложений на 64-битные системы. Он приводит некоторые рекомендации по подготовке исходного кода к беспрепятственному переносу и описывает проблемы, связанные с изменением в типах данных и выравниванием памяти. В конце статьи дается список некоторых хороших практик при работе с 64 битами, которые стоит запомнить.
-
04.12.1997
Начиная с краткой истории системы UNIX и развития компьютерной индустрии, Эндрю Джозей описывает 64-битные модели данных (LP64, ILP64, LLP64), принципы их реализации, их особенности и проблемы переноса кода, обусловленные различиями между 32-битными и 64-битными моделями данных. Далее он рассказывает о принципе независимости спецификаций UNIX от размеров данных, а также о некоторых дополнительных проблемах переноса кода на платформу, использующую модель данных LP64, связанных с объявлением типов, присваиваниями и параметрами функций, внешними интерфейсами, использованием констант, указателей и т.д. Автор также дает некоторые указания, как избежать этих проблем.