サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
tech.ckme.co.jp
ここではGPGPU向け統合環境の一つ、NVIDIAのCUDA(Compute unified device architecture)を使って、大規模並列計算を行ってみる。 NVIDIAによれば、並列度の高い処理ではCPUと比べておよそ10倍以上の速さで処理できるという。 なお、CUDA環境をインストールすると、自動的にOpenCLも使えるようになる。OpenCLに関しては別項を参照。 目次 CUDAのインストール(Linux編) - LinuxにCUDA環境をインストール CUDAのインストール(Windows編) - Windows XPにCUDA環境をインストール CUDAのインストール(Mac OS X編) - Mac OS XにCUDA環境をインストール 初めてのプログラム - とりあえずCUDAでのプログラムに慣れてみます 拡散方程式を解く - より実用的な処理の一例として拡散
目次 >> CUDA >> メモリアクセス CUDA - メモリアクセス CUDAは、コンピュータ上のRAM、グラフィックカード上のRAMなどいくつかのメモリをもつ。 それぞれのメモリは、アクセス速度やアクセスできる範囲などが違う。 具体的には、コンピュータ上のメインメモリには直接アクセスはできない。そのため、cudaMemcpyを使って、メインメモリからグラフィックカード上のメモリへ転送してやる必要がある。 一方、グラフィックカード上のメモリにもいくつか種類があり、一つはグローバルメモリであるが、これは同一グリッド内であれば、どのブロック、どのスレッドからもアクセスできる。 一方、シェアードメモリは同一ブロック内のスレッドからしかアクセスできないものの、グローバルメモリに比べて、きわめて高速にアクセスできる。 今回は、これらの違いがどの程度実行速度に影響するか調べてみた。なお今回使用して
OpenMPは複数のCPU(複数コアを含む)を持った計算機上での並列化に威力を発揮する。 OpenMPを使う最大の利点は、OpenMPに対応したコンパイラであれば、非常に簡単に並列化できる点である。 現在、gcc、Visual C++、およびIntelコンパイラなど主要なコンパイラはOpenMPに対応している。 習得も他の並列化技法に比べて比較的容易である。 なお、速度を最優先にする場合、単一コンピュータ上で動かした場合でも、メモリのローカリティのためかOpenMPよりMPIの方が効率のよいことが多い。MPIに関してはこちらを参照。 なお、インテルがOpenMP初心者向けに非常にわかりやすい文書を公開している。 OpenMPプログラムのコンパイル OpenMPの各種関数を使わない場合、#pragma ompで始まる指示をソースコード内に書き込み、下記のコンパイルスイッチをつけてコンパイルす
目次 >> CUDA >> 初めてのプログラム CUDA - 初めてのプログラム 何もしないプログラム まずは、CUDAの初期化、および終了のみをするプログラムを作ってみる。 cuda001.cuという空のテキストファイルを用意し、下記のような内容にする。 #include <stdio.h> #include <cutil.h> int main( int argc, char** argv) { CUT_DEVICE_INIT(argc, argv); unsigned int timer = 0; CUT_SAFE_CALL( cutCreateTimer( &timer)); CUT_SAFE_CALL( cutStartTimer( timer)); CUT_SAFE_CALL( cutStopTimer( timer)); printf( "Processing time: %
目次 >> Visual C++ Visual C++ Express 2013 Visual C++ Express 2013は、昔と比べてインストールはだいぶ楽になっている。 Visual Studio Express 2013の一部としてC++もインストールされる。 インストールが楽な代わりに、C++だけをインストールすることはできない。そのため、インストールに必要な容量はかなり大きく4GB近くある。 まず、http://www.visualstudio.com/ja-jp/products/visual-studio-express-vsへ行く。 いくつかのエディションがあるが、いわゆる普通のWindowsアプリケーションを作成するには、Visual Studio Express 2013 for Windows Desktopを選択すれば良い。 インストール手順は以下の通り。 こ
目次 >> Apache >> 設定 Webサーバの設定 - Apacheの設定 主要な設定はOpenSUSE 11.2などでは /etc/apache2/httpd.conf OpenSUSE 10.0などでは /etc/httpd/conf/httpd.conf で行う。httpd.confの日本語訳はここ。openSUSE の場合は、ファイルが細かく分かれており、httpd.confはそれらのファイルをincludeで読み込んでいるので注意。以下特に注釈がない場合は、httpd.confもしくはそこでincludeされるファイルに記述する。 なお、ubuntuなどdebian系のOSでは、 /etc/apache2/apache2.conf が基本設定で、ユーザの追加の設定は下記の中 /etc/apache2/httpd.conf および、そのサブディレクトリで行うこととなっている。
目次 >> NTP 時計の合わせ方 ここでは、NTP(Network Time Protocol)サーバおよび、ntpdateを使った、時計の合わせ方について解説する。 また、NTPを使わない手動での合わせ方についても解説する。 パソコンの内蔵時計について もし、そのマシンでLinuxしか動かさないのであれば、UTCに設定すればよい。このように設定すると、例えばサマータイムのようにローカルの時刻が変わっても、パソコンの内蔵時計自体は変化せず、LinuxがUTCで設定された時刻から、場所や季節に合わせて、表示する時刻をソフトウェア的に変化させる。 一方もし、Windowsと共存させるのであれば、Windowsはハードウェアクロックに直接ローカルタイムを書き込むので、UTCではなく、Windowsと同じ方法を使って時刻を管理する。そうしないと、Windows、Linuxで立ち上げるごとに時計あ
目次 >> Mac OS X macOS Tips ここでは、macOSのきわめて初歩的なものも含めたTipsをQ&A形式で記述する。 目次 設定ファイルやデータファイルの場所は? QuickTimeでファイルを開いた際に自動的に再生するようにするには? Xサーバを使うには? Windows用キーボードを使うには? WindowsにおけるDeleteキーに相当するものは? ネットワークドライブで.DS_Storeファイルを作成しない スクリーンキャプチャを行うには? sshをパスワードなしでアクセスするには? Webサーバを立ち上げるには? Windows共有のワークグループ名を設定するには? Xcode(gccなど)を使うには パスを追加するには 外部モニタ、プロジェクタに出力するには? sftpサーバに接続するには? Finderで隠しファイルを表示するには? X11の終了時に確認ダイ
目次 >> SSH SSHの設定と運用 ここではSSH(Secure SHell)の設定について述べる。またsshfsについても述べる。 sshdの設定 公開鍵認証を使ったパスワードなしのアクセス DenyHostsでsshへの攻撃を防ぐ sshfsで遠隔地のディレクトリを安全に共有する SSHでリモートコンピュータのsudoコマンドを実行するには? sshでリモートコンピュータのコマンドを実行するには、 ssh foo@example.com 'ls' の様にすればよい。この場合、リモートコンピュータにログインした後、lsが実行されその結果が表示される。 このとき、sudoコマンドを実行しようとすると下記のようにエラーになる。 $ ssh foo@example.com 'sudo ls' sudo: no tty present and no askpass program speci
目次 >> DNS DNSサーバ ここでは、DNSサーバとしてBIND9を取り上げて、その設定方法を解説する。 目次 DNSサーバのインストール DNSサーバ(BIND)の設定 前提 DNS設定の確認方法 BINDの起動、停止、再起動 設定ファイルの位置(FC4、FC5の場合) 設定ファイルの位置(openSUSE 10.0の場合) named.confの設定(プライマリサーバの場合) ゾーンファイルの設定 named.confの設定(セカンダリサーバの場合) named.confの設定(フォワーダの場合) ラウンドロビンでWWWサーバの負荷分散おこなう サブドメインにネームサーバの権限委譲する ダイナミックDNSの設定 SPF(Sender Policy Framework)の追加 DNSサーバ(BIND)の設定 前提 仮想のexample.comおよびexample.orgというドメイ
LinuxにWindowsから共有キーを使ったOpenVPNで接続することを考える。 この接続方法は、LAN外のクライアントパソコンからLAN内のサーバに直接接続し、ファイルの読み書きをするのに適している。 もしLAN内のパソコンに外部のサーバを共有したい場合はより安定したsftp+sambaの構成をおすすめする。くわしくははこちら。 インストール FC4、FC5、openSUSE 10.0ともyumおよびyastからインストールできる。FC5の場合は下記のような形でインストールできるはずである。 # yum install openvpn Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/3] updates [2/3] extras [3/3] Reading
◎ サーバの作成、C++プログラムの作成、三次元可視化に関する情報を書いたページ このサイトは、主にLinuxを利用したサーバの作成方法について書いてあります。 一部は、WindowsおよびMac OS Xを使用してのサーバの作成方法も書いてあります。 また、CおよびC++を使ったプログラミングについての小技などもについても書いてあります。 三次元可視化に関しては、OpenDX、ParaviewおよびMatlabを使用しています。 目次 Linuxサーバの設定 SSH(Secure Shell)の設定 - サーバをリモートから管理する際に必須のSSHについてです DNSの設定 - BIND9を使ってDNSを設定します ウェブサーバの設定 - Apache2.xを利用してウエブページを公開します メールサーバの設定(Unixユーザーアカウント編) - postfix & dovecot メー
目次 >> C、C++ C、C++ Tips ここでは、C、C++のTipsについて述べる Tips一覧 Clang-formatを使ってコードを整形するには? プログラムを実行しているホスト名を取得するには? Unixのターミナルの画面幅を取得するには? Unix系OSでディレクトリ内のファイル一覧を取得するには? Unix系OSでファイル、ディレクトリを削除するには? Unix系OSで実行優先度を取得するには? Unix系OSでタイムゾーンを取得するには? Unix系OSでCPU時間を取得するには? プロセスIDを取得するには? Visual C++でM_PIを使うには? XORSHIFTによる乱数 マイクロ秒まで計測するには? インテルコンパイラでインクルードパスを追加するには? プログラムから簡単にメールを送信するには? #ifdefでelse ifは? coutで出力桁数を指定す
目次 >> プロキシーサーバ プロキシサーバの設定 ここでは、Squidを使用したプロキシサーバの構築方法を示す。 Squidのインストール ここでは、コマンドラインからのインストール方法について解説する。GUI環境があるのであればそちらの方が簡単にできる。 Ubuntu では、apt-getで行う。 $ sudo apt-get install squid Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: squid-common squid-langpack Suggested packages: squidclient squid-cgi logcheck-dat
目次 >> Apache Webサーバの設定と運用 - Apache ここでは、Apache HTTP Serverを利用したWebサーバの設定方法について記述する。Apacheにはバージョン1系統と2系統があるが、すでに2が主流となっているので、以下の記述は2についてである。なおFC5では2.2が標準になっている。 Apacheのインストールおよび起動、停止、再起動 Apacheの設定 ログファイル - ログファイルの扱いおよびログファイルを解析するためのWebalizerの設定 WebDAVを使えるようにする .htaccessファイルでディレクトリごとにカスタマイズする 最終更新日 2008-03-31 本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellの
Ganglia(ガングリア)は複数の計算機の状態をウェブ上で簡単に確認できるソフトウェアである。Gangliaのインストール方法について述べる。 必要となるのは、rrdtool、ganglia-monitor、gmetad、ganglia-webfrontendである。そのうち、rrdtool、ganglia-monitorはクラスタの全ノードにインストールする必要がある。 注:もし、1台のみしか状態を監視しないのであれば、MRTGの方が簡単かもしれない。 Gangliaのインストール ubuntu 12.04編 rrdtool 各種データを集めるrrdtoolをインストールする。これは各ノードすべてのインストールする。 $ sudo apt-get install rrdtool Reading package lists... Done Building dependency tree
ここでは、postfixとdovecotを使用して、バーチャルメールボックスを使用したメールサーバを構築する方法を示す。 バーチャルメールボックスは主に、バーチャルドメインを利用して、一つのサーバで複数のドメインを使っている場合などに便利である。例えば、info@example.comとinfo@example.netのような同じユーザー名で、違うドメインの場合でも、バーチャルメールボックスを使えば簡単にユーザーを追加することができる。 ここでは、バーチャルメールボックスに関する設定のみ記述するので、一般的な設定やバックアップサーバの作成など他の話題に関しては、メールサーバの設定を参照のこと。 なお、すべてのドメインでユーザー名が重複しない場合は、バーチャルメールボックスを使わなくても、mydestinationにドメイン名を追加してやるだけでよい。 mydestination = $my
目次 >> メール メールサーバの設定 - postfix & dovecot ここでは、postfixとdovecotを使用して、Unixユーザーアカウントを利用したメールサーバを構築する方法を示す。この方法では、バーチャルドメインを使用していない場合、もっとも一般的な方法である。 バーチャルドメインを利用している場合、違うドメイン名で、同じユーザー名が使えないなどいろいろと不便なことが多いので、その場合は、バーチャルメールボックスを使用する。バーチャルメールボックスを使用した設定についてはここを参照のこと。 なお、DNSで、MXレコードが設定されていない場合は、たいていの場合Aレコードを利用してメールが送られるが、サーバによってはMXレコードが設定されていないと、送らない場合があるので(例えばsendmailでAレコードを使わないに設定した場合など)、必ずMXレコードは設定しておくこと
このページを最初にブックマークしてみませんか?
『すぐやらない課:tech.ckme.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く