コンピューティング

計算、特にコンピュータを用いる活動全般

コンピューティング: 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世紀ころのものだと推定されており、現在確認できる最古の歯車式計算機である。これは天球上の天体の位置を計算するために使われていたと考えられている。

種類・分類

編集

20世紀後半のコンピュータを用いたコンピューティングのオーソドックスで古典的な分類としては[注釈 2]次のものがあった。

その後コンピューティングは様々な方向で発展し、次のようなコンピューティングが登場した。

  • ビジネス・コンピューティング(: buisiness computing) - ビジネスの経営や運営に役立つコンピュータを開発したり、そのようなコンピュータを経営や運営に実際に役立てること。たとえばERPCRMSCMなど[注釈 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)- 持ち運び可能なコンピュータを開発したりそれを使うことであり、たとえばノートPCPDAタブレット型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]を使用すること。通常、レトロコンピューティングは実用的な目的で行うものではなく、趣味として行われており、レトロコンピューティングのエンスージアストは古く希少になったハードウェアやソフトウェアに懐かしさやノスタルジーを感じてそれを蒐集する。

最近 技術の進展がめざましく、激しい開発競争が行われているコンピューティングとしては次のようなものがある。

  • AIコンピューティング(: AI computing) - コンピュータで機械学習などを行いAI(人工知能)を実現すること[9]
  • 量子コンピューティング(en:Quantum computing) - 量子力学を利用したコンピュータ(量子コンピュータ、を開発し、それ)を使い、複雑な問題を古典的なコンピューターよりも速く解決することであり、コンピューターサイエンス、物理学、数学などを用いた学際的な活動[10]

その他、一般的とは言えないコンピューティングであって研究も限られているようなコンピューティングはアンコンベンショナル・コンピューティン(en:unconventional computing)と呼ばれ、「代替コンピューティング(: alternative computing)」とも呼ばれる。たとえば次のようなものである。

  • 光コンピューティング: optical computing) - 現在一般的なエレクトロニクス方式ではなく、光の諸原理やその性質を用いるコンピュータ、ストレージなどを開発すること。
  • スピントロニクスベースド・コンピューティング(: spintronics-based computing )- (現在一般的な電荷によるエレクトロニクスではなく)スピントロニクスつまり電子のスピンを根本原理に据えたコンピュータを開発すること。
  • モレキュラー・コンピューティング(: molecular computing) - モレキュラーすなわち分子の変化(化学変化)を原理として作動するコンピュータを開発すること。
  • DNAコンピューティング: DNA computing)- DNAデオキシリボ核酸)を利用して超並列計算を行うコンピュータを開発すること。

理論

編集

計算理論」には、計算可能性理論による「計算可能」という概念がある(ただし現実のコンピュータが行っている処理はそれよりも広い[注釈 8])。

科学

編集

計算科学

編集

computational science

コンピュータ科学

編集

computer science

コンピュータ科学は、コンピュータおよびコンピューティングにおける科学的かつ数学的なアプローチである[11][12]技術工学の側面もある(情報技術情報工学)。情報科学も参照。

コンピュータの実装と応用についての実践的技術を扱う分野と純粋に理論的な分野とに分けられる。後者を理論計算機科学と細分類することもある。たとえば、コンピュータグラフィックスなどは実世界での応用的側面が強い前者であり、情報理論計算理論といった分野は(実践にも広く応用されるが)基本的な所としては後者の側に入れられよう。他にコンピューティングの実施・実装に注力する分野もある。コンピュータプログラミングそのものの研究ではプログラミング言語などの様々な側面を研究し、ヒューマンマシンインタフェースでは人間にとってコンピュータを使いやすくする方法の探究などといったことがテーマとなる。


「計算」に対応する英語には、 calculationcomputationもある[要出典]が、もしそう英訳してしまってはcomputingとは別の用語となってしまう。 理論的には、数学あるいはコンピュータ科学の分野である、計算理論でいう「計算可能」という語が指すような広い範囲が computation である。

関連項目

編集

科学と理論

編集

ハードウェア

編集

命令レベルの分類

編集

メモリが日常化して、CPUを命令レベルで性能向上させる方向に注目が集まった。命令フェッチと実行のサイクルを高速化する様々な手法が開発された。

人間的要素

編集

数値データ

編集

文字データ

編集

その他のデータ関連項目

編集

専門団体

編集

標準化団体

編集

脚注

編集

注釈

編集
  1. ^ なお、コンピューティングに必要な数的概念は、命数法が登場する以前からあった。
  2. ^ 1960年代1970年代などまでは
  3. ^ 他にも、MISMRPデータウェアハウスSEM商品ライフサイクルマネジメント、* 地理情報システムEDP、会計・経理処理(会計ソフト)なども含み、広義にはCADCAMなども含む。
  4. ^ アメリカでは多くの大学で「Buisiness Computing」という名称の学科や履修コースが開設されており、このようなコンピュータシステムについて学びたい学生が通う。
  5. ^ 人間に理解できるような仮説を生成し、それを人間に提示し、人間の判断の材料として提供すること
  6. ^ タンジブルな世界ともいう。タンジブル(: tangible)とは、人が手で触れて感じたり、手で動かしたりできるような実体があること。
  7. ^ そのようなコンピュータは英語ではヴィンテージ・コンピュータ(en:vintage computer)という。
  8. ^ 例えば、サーバ等と呼ばれるプログラムは終了せず動き続けるのが基本であるが、そういったものは理論的には「計算可能」に含まれない。

出典

編集
  1. ^ a b The Joint Task Force for Computing Curricula 2005. Computing Curricula 2005: The Overview Report (pdf)
  2. ^ Computing As a Discipline (pdf)
  3. ^ 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.
  4. ^ [2]
  5. ^ [3]
  6. ^ HPE公式サイト
  7. ^ IBM公式サイト、、スーパーコンピューティング
  8. ^ Webio, what is cognitive computing?
  9. ^ NVIDIAのサイト
  10. ^ AWS公式サイト、what is quantum computing?
  11. ^ 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."
  12. ^ 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

外部リンク

編集