コンピューティング (英 : computing )
(古来の意味)「数えること」と「計算すること」であり、算術 ないしは数学 の計算 を指した。
(現在の意味)上の意味に加えて、広義に、コンピュータ を使う活動全般も指す。たとえば20世紀後半などでは主として、コンピュータによる数値計算 や、より広くデータ処理 (data processing)や情報処理 (information processing) などを指していたが、さらに近年ではコンピュータを使いAI を実現することなど、コンピュータを使うさまざまな活動を広く指している。
以前は、日本語では漢字を使い「計算」などと訳すことが多かったが、最近では英語のcomputingをそのまま音写して「コンピューティング」と表記することも多い。
定義
Computing Curricula 2005 [ 1] では「コンピューティング」を次のように定義している。
一般にコンピューティングは、コンピュータを必要としたり、コンピュータの恩恵を受けたり、コンピュータを作ったりする何らかの
目的 を持った活動全般と定義することができる。従ってコンピューティングには、様々な目的のためにハードウェアやソフトウェアのシステム設計し構築すること、各種情報を処理し構造化し管理すること、コンピュータを使って科学的な勉強をすること、コンピュータシステムが知的に振る舞うようにすること、コミュニケーションメディアやエンターテインメントメディアを作ったり使ったりすること、何らかの目的に沿って情報を検索し収集すること、などなどを含む。このリストは事実上無限であり、可能性は広大である。
Computing Curricula 2005 [ 1] では、「コンピューティング」の意味が文脈に左右されることも認識している。
コンピューティングはまた、文脈によってはもっと具体的な意味を持つこともある。例えば、情報システムの専門家がいうコンピューティングは、ソフトウェア技術者のいうコンピューティングとは多少違っている。文脈を問わず、コンピューティングをうまく行うことは複雑で困難なこともある。社会にはコンピューティングをうまく行える人々が必要なので、コンピューティングを職業としてだけでなく、学問領域としても考えなければならない。
「コンピューティング」は1980年代ではもっと狭く定義されることがあった。たとえばACM は1989年の報告書「学問分野としてのコンピューティング」(Computing as a Discipline)[ 2] において、以下のように定義した。
コンピューティングの学問分野は、情報の記述や変換の
アルゴリズム 的な処理に関する体系的研究である。それには、理論、分析、設計、効率、実装、応用が含まれる。コンピューティングの根底にある基本的姿勢は「(効率的に)自動化することができるものは何か?」である。
コンピューティングの歴史
コンピューティングの歴史 (英語版 ) を参照のこと。
コンピューティングの歴史は計算機の歴史 より長く、現代的なコンピュータ が登場する前に遡れば、機械式計算機、紙とペン、石版とチョーク、パピルスと葦ペン 、粘土板と葦ペン、砂と指と石などを使った時代があった。
コンピューティングは数 の表現方法と密接に関連している。[ 注釈 1]
現在知られている歴史上最も古い計算道具はアバカス であり、これは紀元前2700年 -紀元前2300年ころにバビロニア のシュメール で発明されたと考えられている。シュメールのアバカスは砂の上にカラム 状の線を引き石を置いて計算するもので、シュメール式の60進法 に基づいたものだった[ 3] 。これが最初の計算道具であり、ギリシアのアルキメデスの2000年以上も先を行っていた最先端の計算システムであった。バビロニア人は60進法の計算を、粘土板 と楔形文字 を使って行うこともできた。
古代エジプト 人は彼らの数システムを使って物を数え、また数の問題たとえば掛け算 や分数 の問題を解くということも行っていたという証拠がパピルス に残されている。彼らは独特の分数システムを持っており、たとえば現代で「3/4」と書くところを古代エジプトでは(現代風に書くと)「1/2 + 1/4」に相当するような、分割した書き方をし[ 4] 、それを使い分数計算を行った。その計算能力をたとえばピラミッド建設では設計図の作成、必要な石材の数の算出、労働者らへ支給すべき食料の量や給与の額の計算などに活かした。
紀元前3世紀 、古代ギリシアのアルキメデス は『方法 』を著し、同書で梃子のメカニカルな原理も説明し、そのような原理を数学問題を計算するために使った人物であり、再帰 的な手法も用いて数学問題も解き、たとえば「宇宙に存在する砂粒の数」なども計算した。
アンティキラ島付近の沈没船から発見された古代ギリシアのアンティキティラ島の機械 は紀元前2世紀 ころのものだと推定されており、現在確認できる最古の歯車式計算機である。これは天球上の天体の位置を計算するために使われていたと考えられている。
バビロニアのアバカス。これは
粘土板 に葦ペンを押し付けて楔形文字でバビロニア式の60進法表記の25:47 (十進の1547)と書いてある。
研究者からは「YBC 7289」と呼ばれているバビロニアの粘土板(紀元前1800-1600年頃のもの)。
2の平方根 。近似値は60進法で4桁、10進法では約6桁に相当する。1 + 24/60 + 51/60
2 + 10/60
3 = 1.41421296...
[1] 。
古代エジプトのパピルスに書かれた数学に関する文書
アンティキティラ島の機械
種類・分類
20世紀後半のコンピュータを用いたコンピューティングのオーソドックスで古典的な分類としては[ 注釈 2] 次のものがあった。
その後コンピューティングは様々な方向で発展し、次のようなコンピューティングが登場した。
ビジネス・コンピューティング(英 : buisiness computing ) - ビジネスの経営や運営に役立つコンピュータを開発したり、そのようなコンピュータを経営や運営に実際に役立てること。たとえばERP 、CRM 、SCM など[ 注釈 3] を目的としたシステムを開発したり、それを自社のビジネスのために使うこと。[ 注釈 4]
ヴィジュアルコンピューティング (英 : visual computing ) - "ヴィジュアルな" つまり視覚的な(あるいは画像的、映像的な)処理ができるコンピュータを開発したり、そのようなコンピュータを使うことであり、たとえばコンピュータグラフィックス 、デジタル画像処理 、映像処理、画像・映像認識(en:computer vision )用のコンピュータを開発したり使うことである。
リアルタイムコンピューティング (英 : real-time computing 、RTC) - イベント発生からシステムが応答するまでの時間がきわめて短くなければならないという制約に応えるコンピュータ(リアルタイムシステム )を開発したり、使用すること。
ユーティリティコンピューティング (英 : utility computing )- コンピュータのリソース(CPUの処理能力やストレージ容量など)を、まるで電気/ガス/水道のように、使用した量に応じて変動する従量課金方式で提供すること。
並列コンピューティング (英 : parallel computing 。主に並列計算 と訳す)- 複数のコンピュータやプロセッサーでひとつのタスク処理を行い、高速化を図ること。
コンカレント・コンピューティング(英 : concurrent computing 。主に並行計算 と訳す) - 一つのプロセッサに複数のタスクを存在させ、各タスクに計算を割り振ること。タイムシェアリング技術などを使う。
分散コンピューティング (英 : distributed computing )- 複数のコンピュータをネットワークを介して連携させて問題を解決する手法であり、複数のコンピュータをまるで単一の強力なコンピュータのように機能させること。
グリッドコンピューティング (英 : grid computing ) - インターネットなど広域のネットワークで繋がっているが地理的には離れている計算資源を複合的に結びつけ、ひとつのコンピュータシステムとしてサービスを提供する仕組み。
モバイルコンピューティング(en:Mobile computing )- 持ち運び可能なコンピュータを開発したりそれを使うことであり、たとえばノートPC 、PDA 、タブレット型PC 、スマートフォン などを開発したりユーザとして使うこと。
ユビキタスコンピューティング (英 : ubiquitous computing )- あらゆるモノにコンピュータが内蔵され、いつでも、どこでもコンピュータの支援が得られるような状態にすること。コンピュータがコンピュータとして意識されることなく、特に意識しなくてもいつでもコンピュータが身近にある状態にすること。パロアルト研究所のマーク・ワイザーが1988年に提唱したが、東京大学の坂村健も1980年代前半から同様の概念である「TRON」構想を提唱していた。
グリーンコンピューティング (英 : green computing ) - 地球環境への負荷が小さいコンピュータやITシステムなどを開発したり使用することであり、広義にはそれに加えて、ITを活用して地球環境への負荷を低減する取り組み(たとえばテレワーク、ビデオ会議、遠隔授業などにより、人の移動に伴うエネルギー浪費の削減など)を併せて指す。
クラウドコンピューティング (英 : cloud computing ) - インターネットなどのネットワークを介しコンピュータ資源をサービスの形で提供することや、そのようなサービスをユーザとして使うこと。
サーバーレス・コンピューティング (英 : serverless computing ) - クラウド・コンピューティングの実行モデルのひとつであり、クラウド・プロバイダーがアプリケーションに必要なマシン・リソースの割り当てを動的に管理し、事前の購入に基づく請求ではなく、各アプリケーション要求を満たすために使用される個々のリソース量に基づいて請求を行うもの。
エッジコンピューティング (英 : edge computing ) - ネットワークのエッジ(端点)つまり利用者らの近くやデータが生じる場所に処理装置を分散配置してデータ処理を行うこと。
フォグコンピューティング(en:fog computing ) - データを端末とクラウドの間の端末に近い場所でミドルウェアにより分散処理することであり、クラウドへ負担が集中することを回避すること。シスコシステムズがIoT対応のために提唱した概念に由来し、クラウドコンピューティングやエッジコンピューティングと関係のある手法であり、「クラウド(雲)」との位置関係から「フォグ(霧)」と形容されている[ 5] 。
ハイパフォーマンスコンピューティング (英 : high-performance computing 、HPC) - 他の一般的なコンピューターをはるかにしのぐ速度でデータを処理し、計算を実行することであり、また、そのようなソリューション(解決策、実行手段)を提供すること[ 6] 。
スーパーコンピューティング(英 : supercomputing ) - ハイパフォーマンス・コンピューティングの一種であり、強力なコンピューターであるスーパーコンピューター を使用して決定や計算を行い、解決までの全体時間を短縮すること[ 7] 。
セマンティックコンピューティング (en:semantic computing ) - 人間が使う「ことば」(自然言語による文章)の意味 をコンピュータに解析させ理解させ、高品質で精度の高い情報収集・情報検索・コンテンツ作成などに役立てること。
コグニティブコンピューティング (英 : cognitive computing )- (人工知能と混同されてしまうことがあるが、正確には異なっており)コンピュータで人間の知能の代わりに判断させることを目指すのではなく、コンピュータを人間の判断を助けるために使うことである。たとえば、人間の思考プロセスを模倣させて、(人間に分かるような)仮説を生成すること[ 注釈 5] などである[ 8] 。
フィジカルコンピューティング (en:physical computing )- コンピュータの周囲に存在しているフィジカルな世界(実在世界)[ 注釈 6] と相互作用できるコンピュータを開発したり使用することであり、周囲の実在世界をセンサ 類で感知し、アクチュエータ 類(モータ、サーボなど)やライト類などで実在世界に働きかけるようなコンピュータを開発したり使用すること。(この定義だと広義には工場内の大規模な生産制御システムなども含まれることになるが、メイカームーブメント の文脈ではフィジカルでも主にSBC を利用した小規模なシステムの開発や使用を指している。)また、そのようなコンピュータを使い人とコンピュータがインタラクティブにフィジカルなやり取りをしたり、あるいは、そのようなコンピュータを介した人と実在世界の間の相互作用を実現すること。
レトロコンピューティング(en:retrocomputing ) - すでに古くなり骨董品的な位置づけとなったコンピュータ[ 注釈 7] を使用すること。通常、レトロコンピューティングは実用的な目的で行うものではなく、趣味として行われており、レトロコンピューティングのエンスージアスト は古く希少になったハードウェアやソフトウェアに懐かしさやノスタルジーを感じてそれを蒐集する。
最近 技術の進展がめざましく、激しい開発競争が行われているコンピューティングとしては次のようなものがある。
その他、一般的とは言えないコンピューティングであって研究も限られているようなコンピューティングはアンコンベンショナル・コンピューティン(en:unconventional computing )と呼ばれ、「代替コンピューティング(英 : alternative computing )」とも呼ばれる。たとえば次のようなものである。
光コンピューティング (英 : optical computing ) - 現在一般的なエレクトロニクス方式ではなく、光の諸原理やその性質を用いるコンピュータ、ストレージなどを開発すること。
スピントロニクスベースド・コンピューティング(英 : spintronics-based computing )- (現在一般的な電荷によるエレクトロニクスではなく)スピントロニクス つまり電子のスピンを根本原理に据えたコンピュータを開発すること。
モレキュラー・コンピューティング(英 : molecular computing ) - モレキュラーすなわち分子 の変化(化学変化 )を原理として作動するコンピュータを開発すること。
DNAコンピューティング (英 : DNA computing )- DNA (デオキシリボ核酸 )を利用して超並列計算を行うコンピュータを開発すること。
理論
「計算理論 」には、計算可能性理論 による「計算可能」という概念がある(ただし現実のコンピュータが行っている処理はそれよりも広い[ 注釈 8] )。
科学
計算科学
computational science
コンピュータ科学
computer science
コンピュータ科学は、コンピュータおよびコンピューティングにおける科学 的かつ数学 的なアプローチである[ 11] [ 12] 。技術 や工学 の側面もある(情報技術 ・情報工学 )。情報科学 も参照。
コンピュータ の実装と応用についての実践的技術を扱う分野と純粋に理論的な分野とに分けられる。後者を理論計算機科学 と細分類することもある。たとえば、コンピュータグラフィックス などは実世界での応用的側面が強い前者であり、情報理論 や計算理論 といった分野は(実践にも広く応用されるが)基本的な所としては後者の側に入れられよう。他にコンピューティングの実施・実装に注力する分野もある。コンピュータプログラミング そのものの研究ではプログラミング言語 などの様々な側面を研究し、ヒューマンマシンインタフェース では人間 にとってコンピュータを使いやすくする方法の探究などといったことがテーマとなる。
他
「計算」に対応する英語には、 calculation と computation もある[要出典 ] が、もしそう英訳してしまってはcomputingとは別の用語となってしまう。
理論的には、数学あるいはコンピュータ科学の分野である、計算理論 でいう「計算可能 」という語が指すような広い範囲が computation である。
関連項目
科学と理論
ハードウェア
命令レベルの分類
メモリ が日常化して、CPUを命令レベルで性能向上させる方向に注目が集まった。命令フェッチと実行のサイクルを高速化する様々な手法が開発された。
人間的要素
数値データ
文字データ
その他のデータ関連項目
専門団体
標準化団体
脚注
注釈
出典
^ a b The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005: The Overview Report (pdf)
^ Computing As a Discipline (pdf)
^ Ifrah, Georges (2001). The Universal History of Computing: From the Abacus to the Quantum Computer. New York, NY: John Wiley & Sons, Inc. ISBN 978-0-471-39671-0 .
^ [2]
^ [3]
^ HPE公式サイト
^ IBM公式サイト、、スーパーコンピューティング
^ Webio, what is cognitive computing?
^ NVIDIAのサイト
^ AWS公式サイト、what is quantum computing?
^ Denning, Peter J.; Comer, D. E.; Gries, David; Mulder, Michael C.; Tucker, Allen; Turner, A. Joe; Young, Paul R. (1989). “Computing as a discipline”. Communications of the ACM 32 (1): 9–23. doi :10.1145/63238.63239 . ISSN 00010782 . "Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application-that describe and transform information."
^ Wegner, P. (13–15 October 1976). "Research paradigms in computer science". Proceedings of the 2nd international Conference on Software Engineering . San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA. Computer science is the study of information structures
外部リンク