Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

「C/C++」記事一覧

196件中81~100件を表示
  • 2010/04/02

    インテルTBBによる選択ソートの高速化

     この記事では、選択ソートアルゴリズムを「STL」で実装し、インテルが公開しているマルチコアCPU向けのC++テンプレートライブラリ「インテル スレッディング・ビルディング・ブロック」を使ってマルチスレッドによる高速化を試みます。

  • 2010/03/04

    処理並列は、必ず処理速度が向上するのか

     3つのアルゴリズムを並列化して、並列化によってどのように処理効率が向上するのか、検証します。

  • 2010/03/02

    SEXYHOOKの実装部 とある関数の接合部(2)

     テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。time()がハードコートされている関数をデバッグしたい時や、まれにしか失敗しないAPIの失敗をエミュレーションしたい時などです。本稿では、テスト用の接合部を作成するライブラリ「SEXYHOOK」がいかにして関数、APIフックを処理しているかを説明します。

  • title.gif
    2010/02/24

    スレッドセーフとインテルTBBのコンテナ

     本連載では、C++プログラムで並列処理を行うアプローチを提供するテンプレートライブラリ「インテルスレッディング・ビルディング・ブロック」(インテルTBB)について解説します。今回は、インテルTBB特有の4個のコンテナとそれに関連する並列処理の概念について説明します。

  • 2010/02/22

    SEXYHOOKで始めるテスト とある関数の接合部(1)

     テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。time()がハードコートされている関数をデバッグしたい時や、まれにしか失敗しないAPIの失敗をエミュレーションしたい時などです。本稿では、一時的に関数の挙動を書き換え、失敗を返すことが可能になる「SEXYHOOK」の使い方について説明します。

  • 2010/02/15

    配列コピー時に犯しやすい誤りに注意する ――C/C++セキュアコーディング入門(6)

     配列をコピーする際、記憶領域の扱いを適切に行わないとバッファオーバーフローにつながります。コピー元のデータ量またはコピー先の記憶領域のサイズをチェックするのが基本的な対策になりますが、誤って脆弱性を引き起こすことも多々あります。今回は、こういった配列コピー時に犯しやすい誤りについて解説します。

  • t.gif
    2010/01/29

    OpenMPの実行時ライブラリと並列ループ

     昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。そこで本連載では、一番効率化を要求されるC/C++プログラマーを対象としてOpenMPの基礎を紹介します。今回は並列プログラミングに役立つ実行時ライブラリの関数と並列ループについて解説します。

  • 2010/01/26

    C++/CLI: とある文字列の相互変換(コンバージョン)

     本稿では、managedとnaviteのコードが混在するため、ややこしくなりがちなC++/CLIにおいて、特に煩雑なことの多い「文字列」の処理、および数々の「文字コードの変換方法」を紹介します。

  • 2010/01/22

    sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)

     今回はsizeofオペレータをとりあげます。sizeofは、引数に与えたオブジェクトや型名から、その型のデータがメモリ上に占めるバイト数を求めるオペレータです。まずはsizeofオペレータの使用上の注意について説明し、その後でsizeofオペレータの誤用例を2つ紹介します。

  • t.gif
    2010/01/06

    OpenMPの基礎構文

     昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。そこで本連載では、一番効率化を要求されるC/C++プログラマーを対象としてOpenMPの基礎を紹介します。今回はOpenMPのもっとも基本的な知識を解説します。

  • 2010/01/04

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

     UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。

  • t.gif
    2009/12/28

    .NETでマンデルブロ集合を描く(後日談) ――Task Parallel Library/Parallel Patterns Libraryの利用

     前回の記事「.NETでマンデルブロ集合を描く」に引き続き、排他制御の排除とマルチスレッド化による高速化を試みます。Visual Studio 2010 β2を使い、.NET Framework 4.0の新しいライブラリ:TPL(Task Parallel Library)を使ってみます。Visual C++ 10.0の新ライブラリ:PPL(Parallel Patterns Library)版のおまけつき。

  • 2009/12/21

    文字列はNULL終端させる ――C/C++セキュアコーディング入門(3)

     文字列操作に関するプログラミングエラーはいくつかありますが、今回は基本的であるが間違いを犯しやすい文字列のNULL終端エラーについて解説します。

  • t.gif
    2009/12/10

    .NETでマンデルブロ集合を描く

     大量の計算が必要なマンデルブロ集合の計算とその描画をマルチスレッドで行います。C#, VB.NET, C++/CLI の三大.NET言語での実動コード付き!

  • t.gif
    2009/12/02

    Windows 7に対応し、並列化サポートも強化された 「インテル C++ コンパイラー 11.1」

     2009年9月にリリースされた最新版の「インテル C++ コンパイラー 11.1」では、Windows 7をサポートし、次世代の256ビット命令セットに対応したインテルAVX、AES命令セット、最新のOpenMP 3.0など、多くの新技術にいち早く対応している。本稿では、それらの一部を具体的なサンプルコードで試した結果をお伝えする。

  • t.gif
    2009/12/01

    ポインタ演算は正しく使用する ――C/C++セキュアコーディング入門(2)

     ポインタ型データに対する加減算は普通の整数演算とは異なることに注意が必要です。今回はこのポインタ演算に関するコーディングエラーの例を見てみましょう。

  • 2009/11/18

    脆弱性体質の改善 ――C/C++セキュアコーディング入門(1)

     この連載では、深刻な被害をもたらす可能性のある「プログラムの脆弱性」を未然に防ぎ、セキュアなコーディングを行うための知識やコツを紹介していきます。世界中のCのプロフェッショナルが作成したCのコーディング規約集「CERT C セキュアコーディングスタンダード」というドキュメントをベースにしています。

  • t.gif
    2009/11/11

    インテルTBBから学ぶループの並列化

     本連載では、C++プログラムで並列処理を行うアプローチを提供するテンプレートライブラリ「インテルスレッディング・ビルディング・ブロック」(インテルTBB)について解説します。今回はインテルTBBのアルゴリズムテンプレートとループの並列化を説明します。

  • 2009/10/13

    インテル スレッディング・ビルディング・ブロックの概要

     本連載では、C++プログラムで並列処理を行うアプローチを提供するテンプレートライブラリ「インテルスレッディング・ビルディング・ブロック」(インテルTBB)について解説します。第1回目はインテルTBBの概要を解説します。

  • t.gif
    2009/09/10

    並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」

     筆者は今後絶対に身につけるべきプログラマーのスキルを、並列プログラミングだと考えています。その背景については『インテル Parallel Studioを使って並列化プログラミングを試してみた』を参照してください。今回は、以前紹介できなかった並列プログラミングのデバッグと、デバッグツールについて紹介します。

196件中81~100件を表示
All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5