Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
なおき きしだ
PDF, PPTX
8,523 views
これからのコンピューティングの変化とこれからのプログラミング at 広島
最近のコンピューティングの変化と、それがプログラミングにどのようにかかわってくるかをまとめました。
Software
◦
Read more
19
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 63
2
/ 63
3
/ 63
4
/ 63
5
/ 63
6
/ 63
7
/ 63
8
/ 63
9
/ 63
10
/ 63
11
/ 63
12
/ 63
13
/ 63
14
/ 63
15
/ 63
16
/ 63
17
/ 63
18
/ 63
19
/ 63
20
/ 63
21
/ 63
22
/ 63
23
/ 63
24
/ 63
25
/ 63
26
/ 63
27
/ 63
28
/ 63
29
/ 63
30
/ 63
31
/ 63
32
/ 63
33
/ 63
34
/ 63
35
/ 63
36
/ 63
37
/ 63
38
/ 63
39
/ 63
40
/ 63
41
/ 63
42
/ 63
43
/ 63
44
/ 63
45
/ 63
46
/ 63
47
/ 63
48
/ 63
49
/ 63
50
/ 63
51
/ 63
52
/ 63
53
/ 63
54
/ 63
55
/ 63
56
/ 63
57
/ 63
58
/ 63
59
/ 63
60
/ 63
61
/ 63
62
/ 63
63
/ 63
More Related Content
ODP
Ml ch10
by
Ryo Higashigawa
PDF
JS/Canvas Tutorial1
by
秀俊 伊藤
PDF
コンピューティングとJava~なにわTECH道
by
なおき きしだ
PDF
Bjarne dont speaking
by
Akira Takahashi
PPTX
ソフトウェアとは
by
Kimiyuki Yamauchi
PDF
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
by
なおき きしだ
PDF
これからのコンピューティングとJava(Hacker Tackle)
by
なおき きしだ
PPTX
なぜコンピュータを学ばなければならないのか 21世紀の君主論
by
Tokoroten Nakayama
Ml ch10
by
Ryo Higashigawa
JS/Canvas Tutorial1
by
秀俊 伊藤
コンピューティングとJava~なにわTECH道
by
なおき きしだ
Bjarne dont speaking
by
Akira Takahashi
ソフトウェアとは
by
Kimiyuki Yamauchi
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
by
なおき きしだ
これからのコンピューティングとJava(Hacker Tackle)
by
なおき きしだ
なぜコンピュータを学ばなければならないのか 21世紀の君主論
by
Tokoroten Nakayama
Similar to これからのコンピューティングの変化とこれからのプログラミング at 広島
PDF
Data Center As A Computer 2章前半
by
Akinori YOSHIDA
PDF
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
by
Takashi Uemura
PPTX
LiBRA 01.2021 / Quantum Computer
by
Masanori Saito
PPTX
量子コンピュータ
by
Masanori Saito
PPTX
量子コンピュータ
by
Masanori Saito
PDF
Astah UML/ER/mindmapping modeling tool Introduction
by
Kenji Hiranabe
PDF
CodingTips+ 基礎編
by
Yusuke Ito
PDF
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
by
DNA Data Bank of Japan center
PDF
Introduction to programming
by
keki3
PPTX
最新のITトレンドを理解するためのITの基礎知識 図版
by
Masanori Saito
PDF
Guide to Cassandra for Production Deployments
by
smdkk
PDF
「ほげエンジニア」の定義について #operationcasual
by
SATOSHI TAGOMORI
PDF
社会ネットワーク分析第7回
by
Satoru Mikami
PPT
20150903 jasis2015 生島
by
Takahiro Ikushima
PDF
OSC.Cloud 2012 インフラエンジニアがOpenStackを学ぶべきたった一つの理由
by
irix_jp
PPTX
Cloud impact on IT industry (in Japanese)
by
shojiro-tanaka
PPTX
【ITソリューション塾】量子コンピュータ
by
Masanori Saito
PDF
OpenStack Advent Calendar 2012 JP 12/15
by
irix_jp
ODP
Introduction of Python
by
Tomoya Nakayama
PDF
Processing
by
Akifumi Nambu
Data Center As A Computer 2章前半
by
Akinori YOSHIDA
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
by
Takashi Uemura
LiBRA 01.2021 / Quantum Computer
by
Masanori Saito
量子コンピュータ
by
Masanori Saito
量子コンピュータ
by
Masanori Saito
Astah UML/ER/mindmapping modeling tool Introduction
by
Kenji Hiranabe
CodingTips+ 基礎編
by
Yusuke Ito
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
by
DNA Data Bank of Japan center
Introduction to programming
by
keki3
最新のITトレンドを理解するためのITの基礎知識 図版
by
Masanori Saito
Guide to Cassandra for Production Deployments
by
smdkk
「ほげエンジニア」の定義について #operationcasual
by
SATOSHI TAGOMORI
社会ネットワーク分析第7回
by
Satoru Mikami
20150903 jasis2015 生島
by
Takahiro Ikushima
OSC.Cloud 2012 インフラエンジニアがOpenStackを学ぶべきたった一つの理由
by
irix_jp
Cloud impact on IT industry (in Japanese)
by
shojiro-tanaka
【ITソリューション塾】量子コンピュータ
by
Masanori Saito
OpenStack Advent Calendar 2012 JP 12/15
by
irix_jp
Introduction of Python
by
Tomoya Nakayama
Processing
by
Akifumi Nambu
More from なおき きしだ
PDF
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
by
なおき きしだ
PDF
GraalVM at Fukuoka LT
by
なおき きしだ
PDF
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
by
なおき きしだ
PDF
GraalVMについて
by
なおき きしだ
PDF
VRカメラが楽しいのでブラウザで見たくなった話
by
なおき きしだ
PDF
最近のJava事情
by
なおき きしだ
PDF
怖いコードの話 2018/7/18
by
なおき きしだ
PDF
Java新機能観察日記 - JJUGナイトセミナー
by
なおき きしだ
PDF
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
by
なおき きしだ
PDF
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
PDF
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
PDF
Java10 and Java11 at JJUG CCC 2018 Spr
by
なおき きしだ
PPTX
New thing in JDK10 even that scala-er should know
by
なおき きしだ
PPTX
Java Release Model (on Scala Matsuri)
by
なおき きしだ
PDF
これからのJava言語と実行環境
by
なおき きしだ
PDF
JavaOne報告2017
by
なおき きしだ
PDF
JavaOne2017で感じた、Javaのいまと未来 in 大阪
by
なおき きしだ
PDF
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
PDF
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
by
なおき きしだ
PDF
JavaOne2016報告
by
なおき きしだ
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
by
なおき きしだ
GraalVM at Fukuoka LT
by
なおき きしだ
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
by
なおき きしだ
GraalVMについて
by
なおき きしだ
VRカメラが楽しいのでブラウザで見たくなった話
by
なおき きしだ
最近のJava事情
by
なおき きしだ
怖いコードの話 2018/7/18
by
なおき きしだ
Java新機能観察日記 - JJUGナイトセミナー
by
なおき きしだ
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
by
なおき きしだ
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
Java10 and Java11 at JJUG CCC 2018 Spr
by
なおき きしだ
New thing in JDK10 even that scala-er should know
by
なおき きしだ
Java Release Model (on Scala Matsuri)
by
なおき きしだ
これからのJava言語と実行環境
by
なおき きしだ
JavaOne報告2017
by
なおき きしだ
JavaOne2017で感じた、Javaのいまと未来 in 大阪
by
なおき きしだ
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
by
なおき きしだ
JavaOne2016報告
by
なおき きしだ
これからのコンピューティングの変化とこれからのプログラミング at 広島
1.
これからの コンピューティングの変化と これからの プログラミング 2018/6/9 きしだ なおき
2.
自己紹介 ● きしだ なおき ●
LINE Fukuokaで働いています ● プログラミング言語は主にJava ● Twitter:@kis
3.
今日の話 ● プログラマが知っておくこと ● ここ最近の変化
4.
プログラマが知っておくこと
5.
プログラマが知っておくこと ● コンピュータサイエンス – プログラムとはなにか –
広義にはここに挙げてるものを全部含む ● ソフトウェア工学 – プログラムをどう作るか ● アーキテクチャ – プログラムをどう動かすか ● UI/UX – プログラムをどう使うか
6.
コンピュータサイエンス ● 計算理論 ● アルゴリズム ●
データ構造 ● ラムダ計算 ● 型理論 ● コンパイラ ● etc…
7.
アーキテクチャ ● プロセッサ ● メモリ ●
ストレージ ● ネットワーク
8.
ソフトウェア工学 ● プロジェクト管理 ● プロセス ●
設計手法 ● プログラミング言語 ● テスト
9.
ムーアの法則 ● 18-24ヶ月でトランジスタの数が倍になる ● 寸法半減→スピード2倍、消費電力1/4 https://en.wikipedia.org/wiki/Moore's_law
10.
ムーアの法則の終焉 ● 物理的に配置できない – 5nm=水素原子50個分 ●
電子が漏洩する – 電気を余分に消耗する ● 歩留まりがあがらない – 製造コスト増
11.
微細化が進んでも今までとは違う ● コストが下がらない ● 低消費電力と高速化を同時に実現できない ●
たくさん回路をつんでも、発熱の問題ですべての回路 に電気を流せない – ダークシリコン問題 ● 電力あたりで動かせるトランジスタ数が決まっている
12.
処理を速くするには ● CPUを載せ換えたら勝手に速くなる時代は 10年以上前に終わった ● 並列度をあげる ●
より近いところにデータを置く ● 処理に適した計算ユニットを使う
13.
コンピュータの種類 ● 古典コンピュータ – ノイマン型アーキテクチャ –
非ノイマン型アーキテクチャ ● 量子コンピュータ – 量子アニーリング – 量子ゲート
14.
ノイマン型アーキテクチャ ● メモリから命令をよびだして、命令にしたがっ た回路で処理を行う ● CPU ●
GPU
15.
CPU ● 高機能・高性能・高粒度 ● 割り込み、権限制御、仮想化、など実行以外の機能 ●
OSが実行できる ● 演算器はコアあたり10個程度 – 一チップに100個程度 ● コアは多くて数十コア ● 明示的にメモリを制御できない – いかにキャッシュに載せるか = いかにメモリをまとめて扱うか
16.
GPU ● GPU – ちょうたくさんコアがある –
同じ処理を行う – 行列計算に向いてる ● GTX 1080Ti – 3584コア!
17.
GPUの構成 ● いくつかのコアでグループを作る – 同時に同じ命令を実行する –
グループだけからアクセスできるメモリをもつ ● 明示的にデータを転送する ● コアのグループが多数ある ● コアあたり数個の演算器 – 数千から数万の演算器
18.
非ノイマン型アーキテクチャ ● ノイマン型では命令の読み込みや解析にトランジス タを使う – 電力を食う –
やりたいこと通りに演算器を並べればいいじゃない ● ノイマン型じゃないコンピュータ全体 – FPGA – ニューラルネット型コンピュータ
19.
FPGA ● Field Programmable
Gate Array – Field 現場で – Programmable プログラム可能な – Gate 論理素子が – Array いっぱい並んだやつ ● 現場でプログラムできる論理回路
20.
回路の入出力の組み合わせ 入力 出力 000 0 100
0 010 0 110 1 001 1 101 1 011 1 111 1
21.
LUT(LookUp Table) ● 入出力をあらかじめメモリにもっておく ●
製品としては4入力LUTや6入力LUT 入力 出力 000 0 100 0 010 0 110 1 001 1 101 1 011 1 111 1
22.
論理ブロック ● Logical Element(LE)
Altera ● Logical Cell(LC) Xilinx
23.
配線 ● 論理ブロックが格子状に配置 ● 周囲に配線 ●
アイランドスタイル
24.
乗算回路とメモリ ● 乗算やメモリを論理ブロックの組み合わせで 実現すると効率がわるい ● 乗算回路やメモリ(SRAM)がのってる –
演算器は数百から数千
25.
FPGAの構成
26.
FPGAなら ● 命令を読み込む必要なく、回路をやりたい 処理のとおり並べることができる
27.
FPGAの利点 ● 命令を読み込む必要がない – 処理を行うまでのタイムラグが少ない ●
低レイテンシ – 命令解析のための回路が不要 ● 余分な回路がないので低消費電力 ● 細かな並列化
28.
ディープラーニング(深層学習) ● 階層の深いニューラルネット ● 最近、人工知能っていわれてるのは、ほぼこれ ●
学習には大量のデータを処理する必要がある ● 計算的には行列の積和演算 – ab+c
29.
機械学習用演算器 ● Google – Tensor
Processing Unit(TPU) ● NVIDIA – Tensor core – 4x4行列積和演算 ● FPGAなら? – ネットワークをそのまま回路にできる(かも)
30.
量子コンピュータ ● 量子効果を計算原理に使う ● 通常のコンピュータを古典コンピュータという ●
0と1の重ね合わせの状態をもつ – 古典コンピュータは0か1かを状態としてもつ
31.
量子コンピュータの種類 ● 量子ゲート型 – 量子ビットで論理計算を行う –
8ビットのすべての組み合わせの処理を行うとき ● 古典コンピュータだと256回繰り返すか256回路必要 ● 量子コンピュータだと256パターンの重ね合わせについて一度処理 すればいい ● 量子アニーリング – 量子効果を用いて最適条件を求める
32.
量子コンピュータの使い道 ● 化学計算 ● 暗号が解読できるかも? ●
機械学習?
33.
量子耐性暗号 ● 量子コンピュータでも解読されない暗号 ● 格子暗号など
34.
メモリの変化 ● 不揮発メモリ(Non-Volatile Memory:NVM)の 実用化 ●
Intelの3D XPointなど – 相変化型メモリ ● DRAMより大容量 ● NANDフラッシュより速い
35.
NVMでどうかわるか ● データベースの高速化 – データベースが不要になる? ●
超省電力コンピュータ – 実行時だけ電気をとおす
36.
データベースとは ● クエリ言語エンジン ● インデクサ ●
トランザクション管理 ● ブロック型ストレージ管理 ● クラスタ管理
37.
言語間でメモリを共有できるか ● NVMに乗せたデータをいろいろな言語で 使いたい ● いちいちシリアライズしたくない ●
言語共通のモデルが必要
38.
GraalとTrufe ● Graal – Javaで書いたJava
JITコンパイラ ● Trufe – 構文木処理エンジン – 言語処理が書きやすい – 言語共通オブジェクトモデル ● Object Strage Model(OSM) ● NVMで使うと便利かも
39.
インフラの変化 ● サーバー群の構成の変化
40.
クラウド ● 多数のサーバー ● PaaS(Platform
as a Service) ● IaaS(Infra as a Service)
41.
サーバー構成自動化 ● 多数のサーバーを手作業で構築できない ● サーバー構築をスクリプト化する
42.
仮想化 ● サーバー仮想化 – OSの上で仮想マシンをたてて別のOSを動かす ●
ネットワーク仮想化
43.
コンテナ ● サーバー仮想化には目的に対して無駄が多い ● OSカーネルを共通化してファイルパスや ユーザー、ファイルディスクリプタなど サーバーリソースだけ隔離 ●
プロセスごとにコンテナ化もできる
44.
マイクロサービス ● サーバーの構成の自由度があがった ● 機能ごとにサーバーを立てれる ●
プラットフォームの自由度があがる – 基本はJavaだけど課金管理だけGoで書く、など ● 監視やトレースの重要度は上がる
45.
サーバーレス ● リクエストがきたときだけプロセスが起動 ● つまりCGI ●
(アプリケーション)サーバー(プロセス)レス ● メモリ管理や死活管理が不要 ● リソース割り当ての自由度があがる
46.
コンテナオーケストレーション ● 多数のコンテナが必要になる ● コンテナの管理 ●
Kubernetes ● 監視やトレースなどを仕込める – 通常はフレームワークごとに設定が必要 ● サーバー構築の自動化からサーバー群構築の自動化へ
47.
ソフトウェア工学的変化 ● ハードウェアやインフラが変化 ● プログラムの作り方も変化
48.
自動テスト ● 関数単位でプログラマが関数によるテストを 書く
49.
CI ● 継続的インテグレーション – (Continuous
Integration) ● ビルドプロセスの自動化 ● 自動テストなどを組み込む ● 頻繁なビルドが可能に
50.
Github ● Git – 分散バージョン管理 ●
PullRequestによる機能実装の管理 ● PullRequestを取り込むときにコードレビュー ● GitにcommitがあったときにCIでビルド・テスト ● なんならそのままデプロイ
51.
SRE ● Site Reliability
Engineering ● 運用と信頼性向上を行う ● インフラがソフトウェア化 ● 開発作業も自動化 ● 全部プログラマができる
52.
プログラミング言語の変化 ● 開発マシンや開発対象の変化によりプログラミ ング言語にも変化
53.
オブジェクト主体から関数主体へ ● Javaにもラムダが!(Java 8) ●
GUIからWebへ – 状態管理からリクエスト管理へ – ステートフルからステートレスへ – オブジェクトから関数へ ● メモリ容量が増える – メモリを使い回す必要がない ● 並列対応 – 値が変わらないことを保証することで、コピーして複数スレッドにばらまける
54.
型推論の普及 ● Javaにも型推論が!(Java 10) –
正確には いままでないと言われていたのは ローカル変数型推論 ● 型が複雑になり、手書きしにくくなる ● 型理論の進化 ● コンパイルの高速化
55.
型がなぜ重要か ● B foo(A
a) があるとき C baz(A a) を作れる? C bar(B b) – つくれる ● C baz(A a) { return bar(foo(a)) }
56.
カリーハワード同型対応 ● 鮭は魚 があるとき
鮭は泳ぐ といえる? 魚は泳ぐ ● 魚 foo(鮭 a) があるとき 泳ぐ baz(鮭 a)を作れる? 泳ぐ bar(魚 b) ● 型と論理は同型 ● 型によるプログラムは論理の証明
57.
並列処理対応 ● マイクロサービスや外部サービス連携など サーバー連携の増加 ● 待ち時間の増加 –
スレッドが無駄に ● ノンブロッキングによるスレッドの効率利用 ● リアクティブプログラミング
58.
データによるプログラミング ● 機械学習では学習データの質・量が大事 – データをたくさん集める –
データを適切に前処理する ● 投入データで同じニューラルネットでも処理が 変わる
59.
ユーザーインタフェースの変化 ● 機械学習による言語処理性能や画像・音声認識 性能の向上でインタフェースにも変化
60.
チャットボット ● LINEなどチャット上での対話によりプログラ ムを実行
61.
音声インタフェース ● Clova WAVEやAlexa、Google
Homeなど音声 で操作できるスマートスピーカの普及 ● 音声で照明やエアコンなどの操作
62.
Virtual Reality ● ヘッドマウントディスプレイでの没入感 ●
ジェスチャーによる操作
63.
まとめ ● コンピュータは変わる ● みんなも変わろう
Download