サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
www.softek.co.jp
PGIトップ › PGI コンパイラの概要 › PGI Community Edition 概要 ソフテックは、PGI 製品の公認正規代理店です PGI Community Edition PGI Community Edition は、マルチコア CPUs と NVIDIA tesla GPUs を対象とした NVIDIA 社の PGI Fortran、C、C++ コンパイラの新しいリリースを無償で利用できるライセンス・ソフトウェアです。コンパイラ機能には、OpenACC、OpenMP、CUDA Fortran の機能も含まれ、有償製品である PGI Professional 製品に含まれる機能が使用できます。言語コンパイラには、CPU 用の最適化コンパイル機能と NVIDIA GPU アクセラレータ用のコンパイル機能の両方が含まれております。CPU 用のコンパイル機能だけを使用すること
プログラムをチューニングしようとするときに、プログラムのどこの部分が時間が掛かっているかを知りたいはずです。我々が「チューニング」や「プログラム最適化」と称していることは、ずばりプログラムを高速化すると言うことと同じことなのですが、高速化はまず一番時間の掛かっている部分(「ホットスポット」と言う。)から攻めようと言う話になります。また、そのホットスポット部分が、並列化が可能であるかどうかと言ったことも判断してゆくことになります。プログラムの各部分の消費時間を分析することを「プロファイリング」と言います。ここでは、PGIコンパイラのツールを利用して消費時間に関するプロファイリングの方法を説明します。これにより、プログラムのホットスポットを把握し、最初にGPU並列を行う部分を絞り込みます。このページでは、この他に、Compute-Intensity(計算密度)指標の意味、プロファイル・フィード
マルチGPUを備えたシステム上で、CUDA 4.0 からの機能である Unified Virtual Addressing や GPUdirect v2.0 の機能の使用方法を解説する。今回は、デバイス間の peer-to-peer メモリアクセスを利用する際のプログラムの方法を説明する。 2011年10月6日 Copyright © 株式会社ソフテック 加藤 CUDA 3.2 以前においては、一つのホスト・アプリケーションから複数の GPU (CUDA devices) を使用する場合は、必ず、1スレッド(プロセス)に特定の 1GPU device (以下、「デバイス」と言う。)を割り当てると言う構成でソフトウェアを組む必要がありました。すなわち、一つの「ホスト・スレッド」から「複数」の GPU device(以下、「デバイス」と言う。)を使用することができませんでした。従って、Mult
クロスサイトスクリプティング(XSS)は、外部から任意のスクリプトが埋め込まれてしまうことにより発生する脆弱性です。パラメータの入力時または外部から入力されたパラメータの出力時にサニタイズされていないことが原因で問題が発生します。mod_securityでこの脆弱性を防ぐには、以下が考えられます。 SecFilter "[Jj][Aa][Vv][Aa][Ss][Cc][Rr][Ii][Pp][Tt]:" deny SecFilter "<[[:space:]]*[Ss][Cc][Rr][Ii][Pp][Tt]" deny 上記の設定は、 <script> タグおよび javascript スキームがHTTPリクエスト中に含まれていた場合に拒否する設定です。これによって多くのクロスサイトスクリプティングの脆弱性を防ぐことが可能です。 しかしながらこれは完全ではありません。クロスサイトスクリプ
コンピューティング環境が、従来の CPU だけで処理される時代から変化しようとしています。電力効率の問題を内在しメモリ帯域幅の制約から「CPU 自体の性能向上」が期待できない中で、GPU や DSP と言った、今まで特殊用途のプロセッサを利用し、汎用的な処理を行うソフトウェア環境が整備されつつあります。ここでは、こうした異種プロセッサを活用する「ハイブリッド・コンピューティング」のソフトウェア環境の一つである、OpenACC (Open Accelerator) の使用法に関して纏めます。OpenACCは、2008 年から PGI が取り組んだ PGI Accelerator Programming Model の考え方を踏襲し、2011 年に新しく標準規格化されたものです。OpenMP のようなディレクティブ・ベース(ソース上に指示行を挿入する形態)のプログラミング手法を採用し、GPU
一体、Webサイトを持たない組織は今どれくらいあるでしょうか。 Webサーバを自前で持つ、ホスティングサービスを利用する、など運用形態はさまざまですが、Webサイトを持たない組織はほとんどないと思える程に Webは普及しています。 ファイアウォールはほとんどの組織で導入済みであり、多くのWebサーバはファイアウォールの中で運用されているのが一般的です。 しかしながら、最も普及しているファイアウォールはIPアドレス、ポートレベルでのフィルタリングです。この方法でのフィルタリングでは、許可していないサービスが持つ脆弱性を狙った攻撃を阻止できるため有用ではありますが、HTTPを許可している場合Web自体への攻撃に対して無力です。一方で、HTTPを不許可にした場合にはWebサイトへアクセスできなくなってしまうため本来の目的を達成できません。しかもここ数年、Webサイトを狙ったワームや不正アクセスは
PGI コンパイラを実装しているシステム上で作成した実行モジュール(バイナリ)を他の同一OSのシステムにコピーして実行させる際の方法、注意事項を説明します。こうした状況は、一般にPCクラスタ上のマスタノードで作成された実行モジュールを他のスレーブノード上で実行させるような場合にあたります。これは技術的に言えば、PGIの専用 shared library を取り扱い方を説明するものです。なお、Windows環境では、生成された実行モジュールは、デフォルトでスタティック形式のビルドを行っておりますので、以下に述べるような DLL(shared library)ライブラリのコピー等は必要ありません。他のシステムにコピーして、そのまま実行できます。 2018年11月26日更新 Copyright © 株式会社ソフテック 加藤 一般的な Linux 上の実行バイナリ形態と同様に、PGI で生成された
PGIアクセラレータ™ コンパイラの使用する前に、NVIDIA社の CUDA™ 環境環境をインストールしておく必要があります。ここでは、 一例として CentOS 5.5上に CUDA 4.0環境をインストールする手順を説明します。ここでの前提は、ハードウェアシステムの中に、NVIDIA社の GPU が実装されていることとします。 2011年6月24日 Copyright © 株式会社ソフテック 加藤 PGIアクセラレータ™ コンパイラを使用するためには、NVIDIA社の CUDA-enable な GeForce、Quadro、Tesla カードを有した CUDA ソフトウェアがインストールされたシステムが必要です。サポートされる GPU の詳細なリストは、NVIDIA の ウェブサイトでご覧下さい。www.nvidia.com/object/cuda_learn_products_jp
弊社代表取締役社長でHPCエグゼクティブ・コンサルタントである筆者、加藤【筆者プロフィール】が30年にわたるスパコン、HPC業界での経験にもとづき、並列化のための基本的な考え方、並列化の方法、PGIコンパイラの使用例等の技術的なトピックを定期的にコラム形式で掲載しております。現在、GPU コンピューティングにフォーカスし、 OpenACC を利用した技術記事を連載中です。 Copyright © 株式会社ソフテック PGI Accelerator | PGI CUDA Fortran | GPU並列化 MPI/openMP 並列化テクニカル・コラム アップデート © Tsutomu Kato, SofTek 2019年3月12日 【基礎編】PGI CUDA 環境 NVIDIA 社 Linux CUDA インストールガイド(google翻訳で翻能) Linux上での CUDA 環境をインスト
前回のPGIアクセラレータによる姫野ベンチマークの最適化手順(その1)の続編です。本稿では、PGIアクセラレータのディレクティブによる最適化の最終段階である Kernel ループスケジューリングの方法について説明します。また、一般的な CUDA Kernel 性能の最適化方法についても説明します。最終的な性能は、PGI 10.4 コンパイラを使用して、55 GFLOPS の性能を記録しました。同じ Nehalem (2.67GHz) のCPU上では、1コアで 4.1 GFLOPS ですので、13.5倍の加速性能を得ています。 2010年7月10日 Copyright © 株式会社ソフテック 加藤 前回は、単純に PGIアクセラレータの領域指定ディレクティブを使用して GPU CUDA並列コードの作成方法を説明しました。今回は、さらに ループスケジューリング最適化を詳細に説明し、その適用方法
脆弱性情報収集・管理で こんなお困りごとありませんか? 脆弱性の最新情報の収集や 最適なパッチを探す 時間がない どれが自社に 必要な情報かがわからない 英語の脆弱性情報を 正しく理解することが難しい 対策方法が属人化してしまい 管理が煩雑になっている
前回のコラムの続編です。一般的な行列積(matmul)のプログラムをPGI CUDA Fortranでコーディングした場合、どの程度の実効性能となるでしょうか。前回のコラムでは、PGI アクセラレータ用ディレクティブを挿入して GPU 並列コードに翻訳する ①PGIアクセラレータ・プログラミングモデルを使用した実効性能を呈示しました。今回は、②PGI CUDA Fortran でコーディングして実行した際の性能を示します。この次のコラムでは、③NVIDIA の CUBLAS ライブラリを使用する場合の例を示します。 2010年6月26日 Copyright © 株式会社ソフテック 加藤 PGI CUDA Fortran で GPU 並列化を行う場合、デバイスメモリへのアクセスの最適化を行うことが、性能の大幅な向上に繋がります。これを具体的に言えば、NVIDIA GPU の Shared m
ホスト側とGPUボードは PCI バスを通してデータの交換を行います。 GPU内に転送速度は非常に速いが、メモリ・アクセスの遅延(レイテンシ)の大きな「デバイスメモリ」を有します。現在の実装では、数 GB オーダーの容量を有します。 デバイスメモリとGPUの演算装置(「Streaming Multiprocessor (SM)」と言う。あるいは単に Multiprocessor と言うこともある。)の間に、ソフトウェアで管理できるキャッシュ(Shared Memory)とハードウェアで制御できる L1/L2キャッシュ(Fermi以降)が存在する。 Streaming Multiprocessor (SM) は、演算器の集まり(クラスタ)であり、この演算器の最小単位は、Streaming Processor(SP)、あるいは CUDA coreと称される。一つの SM の中に 8個の SP
ここでは、行列積の計算を行うためのプログラムを例示し、PGI コンパイラの使用法、ACML ライブラリの使用法、行列積計算の性能等に関して説明します。ここで、例示したプログラムは、行列積の処理プログラムを以下の三つの方法で記述したものです。 一般的な Fortran プログラムでコーディング例 (シリアル版と OpenMP 並列版) F90 の組込み関数(MATMUL)を使用した例 AMD ACML ライブラリを使用する例 (シリアル版と OpenMP 並列版) 本プログラムは、Fortran 上でプリプロセス・ディレクティブを組込み、それぞれの機能プログラムがコンパイル・動作できるようになっています。ここでは、これらを実現するための一連の処理の方法と実行性能について説明します。ソースファイルは、以下のものを使用します。 使用ソースファイル : matmul.F (Fortran90ベース
GPU を使用した並列計算環境が一般的になりつつあります。ユーザサイド立ってみれば、「並列化適用方法の種類とその効果」をもう一度整理して考え、自分に合った手法を選択しなければいけないと思っている方も多いことでしょう。並列計算と言っても、プロセッサ・コア自体が自動的にSIMD(ベクトル処理)実行するものから、マルチコアを利用した自動並列、OpenMPによるスレッドレベルの並列実行、さらにプログラムを改造してマルチプロセスによる MPI 並列実行と様々な手法が用意されています。さらに、今、GPUを利用した many cores 並列を利用した並列実行も加わり、ユーザにとっては、自分でも手軽にできる方法の判断やその性能効果に関する一つの判断基準を持っておくことが必要でしょう。また、簡単な並列実行の原理等の知識があるだけでも、今後の many cores 並列時代に向けて、合理的な並列化のための指
PGIアクセラレータ™ コンパイラの使用する前に、NVIDIA社の CUDA™ 環境環境をインストールしておく必要があります。ここでは、 一例として CentOS 5.3上に CUDA 2.3環境をインストールする手順を説明します。ここでの前提は、ハードウェアシステムの中に、NVIDIA社の GPU が実装されていることとします。 2009年9月10日 Copyright © 株式会社ソフテック 加藤2009年12月22日 更新 PGIアクセラレータ™ コンパイラを使用するためには、NVIDIA社の CUDA-enable な GeForce、Quadro、Tesla カードを有した CUDA ソフトウェアがインストールされたシステムが必要です。サポートされる GPU の詳細なリストは、NVIDIA の ウェブサイトでご覧下さい。www.nvidia.com/object/cuda_lea
PGI Compilers&Tools は NVIDIA ブランドの NVIDIA HPC SDK ソフトウェアとして、新しく生まれ変わりました。 弊社は、今まで日本において 25 年間に亘りPGIコンパイラ製品の販売と技術サポートを提供して参りました。この度、PGI製品ブランドならびにPGI製品代理店制度の廃止に伴い、弊社もPGI製品の取り扱いを終了いたします。ユーザの皆様におかれましては、四半世紀という長きに亘り、PGI製品を利用くださいましたことにつきまして、ここに厚く御礼申し上げます。 なお、PGIコンパイラソフトウェア自体は今後も開発は継続し、新しい形でご利用いただけます。 株式会社ソフテックによる「PGI製品」の「販売代理店」業務は、2020 年 4 月末日で終了しました(代理店は廃止され、今後日本での旧PGI製品の販売代理店はございません)。例外措置として、米国との決済業務が
GPU対応 PGI アクセラレータ™ コンパイラ ソフテック情報サイト 高性能コンピューティング(HPC)分野では、汎用アクセラレータとしてグラフィックス・プロセッシング・ユニット(GPGPU)を使用する傾向が高まっています。これまで、Fortranアプリケーションからの GPU の使用は極めて限定的でした。GPUアクセラレータを対象とする開発者は、x86-64 ホストと GPU 間のデータ移動を管理し、ホストから GPU に演算処理をオフロードするため一連の関数呼び出しを行い、詳細なレベルでの C プログラミングが必要でした。一方、PGI Accelerator™ Fortran および C、C++ コンパイラは、全体的なプログラム構造とデータを自動的に分析し、アプリケーションの中で GPU へオフロードしたいループ領域へのユーザの指示(OpenACC ディレクティブ、プラグマ)に基づい
現在のプロセッサ技術は、メモリからプロセッサのレジスタまでの間に階層的なキャッシュを置き、データのロード・ストアによる遅延を隠蔽する技術が使用されているため、プロセッサのキャッシュ利用の最適化の如何によりプログラム性能は大きく異なります。従来からキャッシュ利用の最適化を図る方法は、ソースレベルで行うものとして様々な方法が考えられてきました。例えば、ループのアンロール処理、1次元の配列のループ処理においては「ストリップマイニング方法」、二次元以上の配列のループ処理においては「ループのブロッキング手法」等、キャッシュヒット率を向上させるための方法があります。これらの最適化方法に関して、ここでは詳述しませんが、ループのインデックスの変更を行うという煩雑な手間がかかり、さらにソースレベルの直感性を損なうため、性能向上と言う強い目的がない限り、ソースレベルの最適化は行わないのが現実です。 一方、コン
ソフテックは、WAS (Web Application Security) フォーラムの実行委員として 活動しています。
オープンな業界団体の一つである Web Application Security Consortium (WASC) は、Webアプリケーションのセキュリティ脆弱性の原因によって、Webハッキングされたインシデントのデータベース (The Web Hacking Incidents Database=WHID) を作成し公表しています。このデータベースは、メディアによって報告された信頼性が高いインシデントのみを用いているため、数的には大きなサンプル数ではありません。しかし、現在の Webハッキングの攻撃方法の傾向は、このインシデント調査によってよく表されているものと思われます。しかし、これらは氷山の一角であり、Webハッキングの絶対数はさらに多いものと予想されます。また、Webアプリケーションに対する攻撃は、2005年より増加傾向を示しておりますので、今後のセキュリティの脅威として注意すべ
以下の図表は、少々古い pentium による性能を例示していますが、基本的なライブラリ、性能に関する考え方は新たなプロセッサ上においても同じです。PGI コンパイラにバンドルされている AMD 社のACML ライブラリの中の性能最適化された LAPACK は、無償で利用することができます。このような最適化された線形ライブラリを活用することが、劇的にプログラムの性能を向上させる、一つの方法です。 ● LINPACK、LAPACK そして ScaLapackへ発展 1980年代に米国エネルギー省の研究機関で開発され、広く公開された線形方程式ライブラリ LINPACKを発展させた、LAPACK は キャッシュベースの マイクロプロセッサに最適化した形でリニューアルされたものです。LINPACK、LAPACK も基本的な線形演算は BLAS を使用しており、BLAS の使用レベルがそれぞれ異なり
並列化チュートリアル 連載(1) 並列化する際に留意する事項、考え方、PGI コンパイラを利用して実際に並列化する方法(スレッド並列、MPI並列)、性能に関する考察等を順次、この並列化チュートリアルコーナーで連載していきます。 (文責 加藤 努) 【チュートリアル主旨】 現在のCPUプラットフォームのアーキテクチャが、これから大きな変化を遂げようとしている。マイクロプロセッサの高クロック化は、発生する熱との問題で大きな期待をもてない中、今後、プロセッサ・ダイの中にマルチ・コアの構成が普通になろうとしている。ユーザが享受する性能は、高クロック化が望めない場合、複数のプロセッサによる「並列処理」によって、その性能向上が求められる。やっと、いろいろな意味で並列処理のための環境が整ってきたともいえる。これからは、自然に並列処理を受け入れる必要があり、そのためには多くのユーザにとって身近なも
以下の URL から mpich のソースファイル (mpich.tar.gz) をダウンロードします。ここでは、2006年 12 月時点でのバージョン mpich-1.2.7p1 バージョンの生成について述べます。 http://www-unix.mcs.anl.gov/mpi/mpich1/ ダウンロードした mpich.tar.gz のアーカイブを Linux システム上の作業エリア(ここでは、/tmp 配下)に移動します。このアーカイブを以下のコマンドで展開します。 # tar xzvf mpich.tar.gz 展開すると、mpich-1.2.7 と言うディレクトリが作成されますので、そのディレクトリへ移動します。 # cd mpich-1.2.7p1 このディレクトリ配下に、configure と言うスクリプトファイルがありますので、このスクリプトを実行して、mpich 作成用
前回、「mod_securityでWebサーバを守る(第1回)」にて説明したように、mod_securityはオープンソースのWeb Application Firewallです。 最も広く使われているWebサーバであるApacheのモジュールとして動作するため、多くのWebサーバをワームや不正アクセスなどの脅威から守ることができます。今回はインストールと設定について説明します。 では、mod_securityをインストール、設定してみましょう。まずは、 以下のURLからソースコードをダウンロードします。http://www.modsecurity.org/download/index.html ※注 7/7に 1.8.3が出ています。最新のものを利用しましょう。 Apacheが既にインストールされていてDSO(Dynamic Shared Object)が有効になっている場合、apxsコ
次のページ
このページを最初にブックマークしてみませんか?
『SIDfm 脆弱性情報収集・管理ツール』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く