SlideShare a Scribd company logo
1 of 101
Download to read offline
LL
@mootoh
@mootoh

    5
            :         = 7:3


http://deadbeaf.org
Molatomium   CELL REGZA
http://bit.ly/namikan
mootoh

                  wraith13

                  goyoki

   STM            hayamiz

HPU       MUDA     syoyo

      Lock-free   yamasa

Haskell           shelarcy

                    ???
•
•
•
•

    100   !
•
•

    100   !

      LL tiger
LL
(^o^)


 (^o^)


   (^o^)


    (^o^)


        (^o^)


         (^o^)


           (^o^)


                   CC by-nc-sa : http://www.flickr.com/photos/carrapatoso/3467673411/
“The Free Lunch is Over”, by Herb Sutter
http://www.gotw.ca/publications/concurrency-ddj.htm
“The Free Lunch is Over”, by Herb Sutter
http://www.gotw.ca/publications/concurrency-ddj.htm
•
•   CPU


•    (     )

•         (^o^)

•
http://edry.jp/a/2009/02/21_210347.xhtml
?
CC by-nc : http://www.flickr.com/photos/b-tal/407402521/
•   : Eclipse.app
• on iMac Core 2 Duo 3GHz 4GB RAM
• : 33s, 2          : 7s
•   : Eclipse.app
• on iMac Core 2 Duo 3GHz 4GB RAM
• : 33s, 2          : 7s
•    : Eclipse.app
• on iMac Core 2 Duo 3GHz 4GB RAM
• : 33s, 2          : 7s




    (628,702   * 33s * 365   ) / (60 * 60 * 24 * 30)

                =>   2,921        /
• 21   :

•
 •         (GNH)


•
• 21   :

•
 •         (GNH)


•
•        :    →

•
•   →   GNH
LL
Timeline




2010   2015   2020
2010   2015   2020
•
 •≠
 • Native thread
•
• Native thread
 • 5.6            ithread

   •    thread        VM

   •    default    shared nothing


• 6.0             STM

•
 • POE, AnyEvent, Coro, ...
• Native & green thread (                    )

 • ruby1.8: green
 • ruby1.9: native, GIL
 • JRuby, MacRuby: native, GIL      o/


•
 • Revactor, EventMachine, NeverBlock, ...
• Thread
 • CPython: GVL
 • Jython, IronPython :
   •   Jython: system 216% cpu 12.285 total
• no threads, fork it
Haskell
•              Haskell

•
 • Parallel Haskell
 • Concurrent Haskell
 • STM
• Native thread?
• Actor
• Native thread
 •   beam.smp 193.2%


•                /
•
• JVM
 • Native thread
• Actor
• goroutine
 • Native thread
   • runtime.GOMAXPROCS(NCPU)
• Channel
 •
Javascript
• HTML5 WebWorkers   !

 •
 • Native thread ?

    • WebKit
•
Perl      Ruby     Python    PHP      Haskell   Erlang     Scala       go       Javascript

 Native
 thread                                   ×           ?                                          ?

                                                                      Thread,
           Thread,   Thread,                       STM
 Model,                                                     Message             Message     Message
                               Thread   Process
Paradigm                                                    Passing   Message   Passing     Passing
            STM       Fiber
                                                                      Passing



           shared-
           nothing
                                                                                             Web
                                                                                goroutine
                                                                                            Workers
             by
           default
2010-2015
Timeline




2010     2015     2020
↓
JVM

• Native thread,
•
• :
 • JRuby, Jython, Scala, Clojure, ...
http://www.flickr.com/photos/johnkay/3331613033/
•
•   ,   ,   , ...


•
•
•
•   I/O

•
•
•
•
I/O

• C10k
• Event
 • AnyEvent (Perl)
 • EventMachine (Ruby)
•
• :)
                                          http://images.apple.com/macosx/technology/docs/
                                                  GrandCentral_TB_brief_20090903.pdf




• :(                ...?

•   :
•   Grand Central Dispatch → Mac   http://en.wikipedia.org/wiki/File:Gcd_icon20090608.jpg




• Java 7 → JVM
• OpenCL                                      http://www.khronos.org/opencl/
•
•
• Out of Order
• Future
 •
 •
 •               : value resolved

                 : value not resolved yet

                 : executable Atom

                 : pending Atom
Molatomium
DSL                C



      Mol   Atom


       Runtime
Mol
•
    •
    •   Atom (   )


•C
                     main() {
                       frame(frame_no, input) {
                          local loop;
                          local edge[-1..9] outside(0);
    Haskell               local pocs[-1..9] outside(0);
                          local ccr [-1..9] outside(0);

        DSL                  loop     = loop_count();
                             edge[i] := edge_atom(input, i);
                             ccr [i] := ccr_atom(edge[i-1], edge[i], edge[i+1], i);
                             pocs[i] := i % 2 == 0
                               ? pocs_even_atom(ccr [i-1], ccr[i], ccr [i+1], loop, i)
                               : pocs_odd_atom (pocs[i-1], ccr[i], pocs[i+1], loop, i);
                             return &pocs;
                         }

                         sync for (i in [0..30])
                            put_frame_atom(frame(i, get_frame_atom()));
                     }
Runtime
                   Atom                                                  Waiting

                      arguments,                                 waiting for runtime lock
                      return value            Shared



•
                                              Memory

    VM      update runtime context
                                           Global
                                            Lock
                                                       Runtime
                                                       Context




•
                 Runtime                                                  Atom




                                     Mol        Atom             Wait
Runtime
                   Atom                                                  Waiting

                      arguments,                                 waiting for runtime lock
                      return value            Shared



•
                                              Memory

    VM      update runtime context
                                           Global
                                            Lock
                                                       Runtime
                                                       Context




•
                 Runtime                                                  Atom




                                     Mol        Atom             Wait
2010-2015
•
• JVM
•
•       (   I/O,
                   )
2015-2020
Timeline




2010     2015     2020
|



8
FAQ
•         ?
FAQ
•                                                       ?




      http://www.speedia.co.jp/~namisato/2008_05.html
FAQ
•                                                                   ?




                  http://www.speedia.co.jp/~namisato/2008_05.html




            P = f V^2
1MHz   1000      → 1GHz                                                 !
Memory
Wall




         CC-by : http://www.flickr.com/photos/afagen/4145629623/
Memory Wall
•
•
•
• 100
    •   by “Can Manycores Support the Memory Requirements of Scientific Applications?” /
        A4MMC 2010
Memory Wall
•            →

•   : Intel SCC

•
•                 HW


                       http://techresearch.intel.com/articles/Tera-Scale/1826.htm
• Actor
 • Erlang, Scala, go, Javascript   (HTML5, WebWorkers)


 •      LL




                                           CC-by : http://www.flickr.com/photos/punkscrapper/4276443469/
...?
•

•

•
↓




    !

        http://dragon-quest.jp/five/monster/11kingusuraimu.html
↓




    !

        http://dragon-quest.jp/five/monster/11kingusuraimu.html
2015-2020

•
•     →

•
2020 ->
Timeline




2010     2015     2020
http://karlnordstrom.ca/ideas/?p=6   http://www.fastcursor.com/computers/quantum-computer-photo-gallery.asp
Timeline



         Message passing
   JVM


2010          2015         2020
LL
LL
                     P
•              OK (Portable)

•
•                          (Performance)

•   (Productivity)

•                OK
LL
•              OK (Portable)

•
•                          (Performance)

•   (Productivity)

•                OK
LL        ?

•          Light

•
•
•    DSL
:               DSL
•                            LL

 •         : C, Ruby, Perl, PHP, ...

 • Communicating Sequential Process
• LL
 •
• Glue            LL,       LL
?

•
•
•                                       (                     )


•
•               40%
    (by Harvard Business Review
    http://blogs.hbr.org/bregman/2010/05/how-and-why-to-stop-multitaski.html   )
•
•
•
•
•
    http://dragon-quest.jp/five/
•
•
•   C   ...
•
•   (   )


•
Re-Discover

•
•   :

• GC
• Javascript
•
•
•   LL

•
•
•
Application
Application


•
•
?
1.




: Ray Tracing




                http://lucille.sourceforge.net/gallery/0_1_3/index.html
•
•   :

•
•
    •
2.
“
                                                       ”




    http://blogs.itmedia.co.jp/yasusasaki/2010/07/ipad-ab70.html
2.
• try-error
                ...?

•
 • Pixelmator
 •
3.



http://commons.wikimedia.org/wiki/File:Box2d-screenshot.png




                                                              http://www.flickr.com/photos/nh567/1406671607/
     http://www.flickr.com/photos/overig/4639331740/
4.

•
•
• AI
•
•3
•2   →3
LL
•
•   LL

•
•
•
•
•        ?
近未来的並列 LL

More Related Content

What's hot

Jvm Performance Tunning
Jvm Performance TunningJvm Performance Tunning
Jvm Performance Tunningguest1f2740
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & TuningMuhammed Shakir
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의Terry Cho
 
State of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljsState of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljsAlexandre Morgaut
 
Tomcatx troubleshooting-production
Tomcatx troubleshooting-productionTomcatx troubleshooting-production
Tomcatx troubleshooting-productionVladimir Khokhryakov
 
JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011Kris Mok
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Applicationguest1f2740
 
Hong Qiangning in QConBeijing
Hong Qiangning in QConBeijingHong Qiangning in QConBeijing
Hong Qiangning in QConBeijingshen liu
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Hiroshi SHIBATA
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011Marcelo Jabali
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuningJerry Kurian
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011Lance Ball
 
Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical ISSGC Summer School
 
State of the art server side java script
State of the art server side java scriptState of the art server side java script
State of the art server side java scriptThibaud Arguillere
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?Ovidiu Dimulescu
 

What's hot (20)

Jvm Performance Tunning
Jvm Performance TunningJvm Performance Tunning
Jvm Performance Tunning
 
无锁编程
无锁编程无锁编程
无锁编程
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & Tuning
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
 
State of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljsState of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljs
 
Tomcatx troubleshooting-production
Tomcatx troubleshooting-productionTomcatx troubleshooting-production
Tomcatx troubleshooting-production
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011JVM @ Taobao - QCon Hangzhou 2011
JVM @ Taobao - QCon Hangzhou 2011
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
 
Hong Qiangning in QConBeijing
Hong Qiangning in QConBeijingHong Qiangning in QConBeijing
Hong Qiangning in QConBeijing
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011TorqueBox - Ruby Hoedown 2011
TorqueBox - Ruby Hoedown 2011
 
Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical
 
State of the art server side java script
State of the art server side java scriptState of the art server side java script
State of the art server side java script
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?
 

Viewers also liked

pureprofile - PR capabilities
pureprofile - PR capabilitiespureprofile - PR capabilities
pureprofile - PR capabilitiespureprofile
 
Productive conference t onoda
Productive conference t onodaProductive conference t onoda
Productive conference t onodat onoda
 
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)Domnul Eugen
 
Company profile il.ma
Company profile il.maCompany profile il.ma
Company profile il.marosa vaia
 
本の読み方 T Onoda
本の読み方 T Onoda本の読み方 T Onoda
本の読み方 T Onodat onoda
 
Elearning at NWIC
Elearning at NWICElearning at NWIC
Elearning at NWICravenwood
 
Tecnalia apd logroño 2016
Tecnalia apd logroño 2016Tecnalia apd logroño 2016
Tecnalia apd logroño 2016Ruben Otero
 
Galabnik
GalabnikGalabnik
GalabnikEl40
 
12.05.2009 Olv Climic
12.05.2009   Olv Climic12.05.2009   Olv Climic
12.05.2009 Olv ClimicAnton Kraev
 
Why You Should be a RubiKaigi Staff
Why You Should be a RubiKaigi StaffWhy You Should be a RubiKaigi Staff
Why You Should be a RubiKaigi StaffMotohiro Takayama
 
Soc 02 Betz Katelyn
Soc 02 Betz KatelynSoc 02 Betz Katelyn
Soc 02 Betz KatelynBetzk1
 

Viewers also liked (17)

Rurimaphone
RurimaphoneRurimaphone
Rurimaphone
 
pureprofile - PR capabilities
pureprofile - PR capabilitiespureprofile - PR capabilities
pureprofile - PR capabilities
 
Productive conference t onoda
Productive conference t onodaProductive conference t onoda
Productive conference t onoda
 
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)
Prezentarea proiectului DIS (Descoperă Industria Sportivă din Moldova)
 
Company profile il.ma
Company profile il.maCompany profile il.ma
Company profile il.ma
 
本の読み方 T Onoda
本の読み方 T Onoda本の読み方 T Onoda
本の読み方 T Onoda
 
並カン (CM カット版)
並カン (CM カット版)並カン (CM カット版)
並カン (CM カット版)
 
Ruby Kaigi 2008 LT
Ruby Kaigi 2008 LTRuby Kaigi 2008 LT
Ruby Kaigi 2008 LT
 
Elearning at NWIC
Elearning at NWICElearning at NWIC
Elearning at NWIC
 
Rubigraph
RubigraphRubigraph
Rubigraph
 
Tecnalia apd logroño 2016
Tecnalia apd logroño 2016Tecnalia apd logroño 2016
Tecnalia apd logroño 2016
 
Vim M #1
Vim M #1Vim M #1
Vim M #1
 
Galabnik
GalabnikGalabnik
Galabnik
 
12.05.2009 Olv Climic
12.05.2009   Olv Climic12.05.2009   Olv Climic
12.05.2009 Olv Climic
 
Why You Should be a RubiKaigi Staff
Why You Should be a RubiKaigi StaffWhy You Should be a RubiKaigi Staff
Why You Should be a RubiKaigi Staff
 
Soc 02 Betz Katelyn
Soc 02 Betz KatelynSoc 02 Betz Katelyn
Soc 02 Betz Katelyn
 
ngCore
ngCorengCore
ngCore
 

Similar to 近未来的並列 LL

Geek out 2014-lagergren-final
Geek out 2014-lagergren-finalGeek out 2014-lagergren-final
Geek out 2014-lagergren-finalMarcus Lagergren
 
Micronaut: Evolving Java for the Microservices and Serverless Era
Micronaut: Evolving Java for the Microservices and Serverless EraMicronaut: Evolving Java for the Microservices and Serverless Era
Micronaut: Evolving Java for the Microservices and Serverless Eragraemerocher
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage SystemsSATOSHI TAGOMORI
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJSTim Sommer
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...Flink Forward
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)OpenBlend society
 
Multithreading and Parallelism on iOS [MobOS 2013]
 Multithreading and Parallelism on iOS [MobOS 2013] Multithreading and Parallelism on iOS [MobOS 2013]
Multithreading and Parallelism on iOS [MobOS 2013]Kuba Břečka
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019graemerocher
 
Java-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfJava-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfRichHagarty
 
How the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeHow the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeJim Gough
 
Building Ruby in Smalltalk
Building Ruby in SmalltalkBuilding Ruby in Smalltalk
Building Ruby in SmalltalkESUG
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootMichel Schildmeijer
 
Real world Scala hAkking NLJUG JFall 2011
Real world Scala hAkking NLJUG JFall 2011Real world Scala hAkking NLJUG JFall 2011
Real world Scala hAkking NLJUG JFall 2011Raymond Roestenburg
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performancepradeepfn
 
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...gree_tech
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Dynamo 100107092845-phpapp02
Dynamo 100107092845-phpapp02Dynamo 100107092845-phpapp02
Dynamo 100107092845-phpapp02Takefumi MIYOSHI
 

Similar to 近未来的並列 LL (20)

Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
 
Geek out 2014-lagergren-final
Geek out 2014-lagergren-finalGeek out 2014-lagergren-final
Geek out 2014-lagergren-final
 
Micronaut: Evolving Java for the Microservices and Serverless Era
Micronaut: Evolving Java for the Microservices and Serverless EraMicronaut: Evolving Java for the Microservices and Serverless Era
Micronaut: Evolving Java for the Microservices and Serverless Era
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
Virtual Flink Forward 2020: How Streaming Helps Your Staging Environment and ...
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
Byteman and The Jokre, Sanne Grinovero (JBoss by RedHat)
 
Multithreading and Parallelism on iOS [MobOS 2013]
 Multithreading and Parallelism on iOS [MobOS 2013] Multithreading and Parallelism on iOS [MobOS 2013]
Multithreading and Parallelism on iOS [MobOS 2013]
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Java-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfJava-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdf
 
How the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeHow the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java Code
 
Building Ruby in Smalltalk
Building Ruby in SmalltalkBuilding Ruby in Smalltalk
Building Ruby in Smalltalk
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
 
Real world Scala hAkking NLJUG JFall 2011
Real world Scala hAkking NLJUG JFall 2011Real world Scala hAkking NLJUG JFall 2011
Real world Scala hAkking NLJUG JFall 2011
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
Common Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gam...
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Dynamo 100107092845-phpapp02
Dynamo 100107092845-phpapp02Dynamo 100107092845-phpapp02
Dynamo 100107092845-phpapp02
 

Recently uploaded

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 

Recently uploaded (20)

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 

近未来的並列 LL

  • 2. @mootoh 5 : = 7:3 http://deadbeaf.org
  • 3. Molatomium CELL REGZA
  • 4.
  • 6. mootoh wraith13 goyoki STM hayamiz HPU MUDA syoyo Lock-free yamasa Haskell shelarcy ???
  • 8. • • 100 !
  • 9. • • 100 ! LL tiger
  • 10. LL
  • 11.
  • 12. (^o^) (^o^) (^o^) (^o^) (^o^) (^o^) (^o^) CC by-nc-sa : http://www.flickr.com/photos/carrapatoso/3467673411/
  • 13. “The Free Lunch is Over”, by Herb Sutter http://www.gotw.ca/publications/concurrency-ddj.htm
  • 14. “The Free Lunch is Over”, by Herb Sutter http://www.gotw.ca/publications/concurrency-ddj.htm
  • 15. • • CPU • ( ) • (^o^) •
  • 17. ?
  • 18. CC by-nc : http://www.flickr.com/photos/b-tal/407402521/
  • 19.
  • 20. : Eclipse.app • on iMac Core 2 Duo 3GHz 4GB RAM • : 33s, 2 : 7s
  • 21. : Eclipse.app • on iMac Core 2 Duo 3GHz 4GB RAM • : 33s, 2 : 7s
  • 22. : Eclipse.app • on iMac Core 2 Duo 3GHz 4GB RAM • : 33s, 2 : 7s (628,702 * 33s * 365 ) / (60 * 60 * 24 * 30) => 2,921 /
  • 23. • 21 : • • (GNH) •
  • 24. • 21 : • • (GNH) •
  • 25. : → • • → GNH
  • 26. LL
  • 27. Timeline 2010 2015 2020
  • 28.
  • 29. 2010 2015 2020
  • 30. • •≠ • Native thread •
  • 31. • Native thread • 5.6 ithread • thread VM • default shared nothing • 6.0 STM • • POE, AnyEvent, Coro, ...
  • 32. • Native & green thread ( ) • ruby1.8: green • ruby1.9: native, GIL • JRuby, MacRuby: native, GIL o/ • • Revactor, EventMachine, NeverBlock, ...
  • 33. • Thread • CPython: GVL • Jython, IronPython : • Jython: system 216% cpu 12.285 total
  • 34. • no threads, fork it
  • 35. Haskell • Haskell • • Parallel Haskell • Concurrent Haskell • STM • Native thread?
  • 36. • Actor • Native thread • beam.smp 193.2% • /
  • 37. • • JVM • Native thread • Actor
  • 38. • goroutine • Native thread • runtime.GOMAXPROCS(NCPU) • Channel •
  • 39. Javascript • HTML5 WebWorkers ! • • Native thread ? • WebKit •
  • 40. Perl Ruby Python PHP Haskell Erlang Scala go Javascript Native thread × ? ? Thread, Thread, Thread, STM Model, Message Message Message Thread Process Paradigm Passing Message Passing Passing STM Fiber Passing shared- nothing Web goroutine Workers by default
  • 42. Timeline 2010 2015 2020
  • 43.
  • 44. JVM • Native thread, • • : • JRuby, Jython, Scala, Clojure, ...
  • 46. • • , , , ... • • •
  • 47. I/O • • • •
  • 48. I/O • C10k • Event • AnyEvent (Perl) • EventMachine (Ruby)
  • 49. • • :) http://images.apple.com/macosx/technology/docs/ GrandCentral_TB_brief_20090903.pdf • :( ...? • : • Grand Central Dispatch → Mac http://en.wikipedia.org/wiki/File:Gcd_icon20090608.jpg • Java 7 → JVM • OpenCL http://www.khronos.org/opencl/
  • 50. • • • Out of Order • Future • • • : value resolved : value not resolved yet : executable Atom : pending Atom
  • 52. DSL C Mol Atom Runtime
  • 53. Mol • • • Atom ( ) •C main() { frame(frame_no, input) { local loop; local edge[-1..9] outside(0); Haskell local pocs[-1..9] outside(0); local ccr [-1..9] outside(0); DSL loop = loop_count(); edge[i] := edge_atom(input, i); ccr [i] := ccr_atom(edge[i-1], edge[i], edge[i+1], i); pocs[i] := i % 2 == 0 ? pocs_even_atom(ccr [i-1], ccr[i], ccr [i+1], loop, i) : pocs_odd_atom (pocs[i-1], ccr[i], pocs[i+1], loop, i); return &pocs; } sync for (i in [0..30]) put_frame_atom(frame(i, get_frame_atom())); }
  • 54. Runtime Atom Waiting arguments, waiting for runtime lock return value Shared • Memory VM update runtime context Global Lock Runtime Context • Runtime Atom Mol Atom Wait
  • 55. Runtime Atom Waiting arguments, waiting for runtime lock return value Shared • Memory VM update runtime context Global Lock Runtime Context • Runtime Atom Mol Atom Wait
  • 58. Timeline 2010 2015 2020
  • 59.
  • 60. | 8
  • 61. FAQ • ?
  • 62. FAQ • ? http://www.speedia.co.jp/~namisato/2008_05.html
  • 63. FAQ • ? http://www.speedia.co.jp/~namisato/2008_05.html P = f V^2 1MHz 1000 → 1GHz !
  • 64. Memory Wall CC-by : http://www.flickr.com/photos/afagen/4145629623/
  • 65. Memory Wall • • • • 100 • by “Can Manycores Support the Memory Requirements of Scientific Applications?” / A4MMC 2010
  • 66. Memory Wall • → • : Intel SCC • • HW http://techresearch.intel.com/articles/Tera-Scale/1826.htm
  • 67. • Actor • Erlang, Scala, go, Javascript (HTML5, WebWorkers) • LL CC-by : http://www.flickr.com/photos/punkscrapper/4276443469/
  • 69. ! http://dragon-quest.jp/five/monster/11kingusuraimu.html
  • 70. ! http://dragon-quest.jp/five/monster/11kingusuraimu.html
  • 71. 2015-2020 • • → •
  • 73. Timeline 2010 2015 2020
  • 74. http://karlnordstrom.ca/ideas/?p=6 http://www.fastcursor.com/computers/quantum-computer-photo-gallery.asp
  • 75.
  • 76. Timeline Message passing JVM 2010 2015 2020
  • 77. LL
  • 78. LL P • OK (Portable) • • (Performance) • (Productivity) • OK
  • 79.
  • 80. LL • OK (Portable) • • (Performance) • (Productivity) • OK
  • 81. LL ? • Light • • • DSL
  • 82. : DSL • LL • : C, Ruby, Perl, PHP, ... • Communicating Sequential Process • LL • • Glue LL, LL
  • 83. ? • • • ( ) • • 40% (by Harvard Business Review http://blogs.hbr.org/bregman/2010/05/how-and-why-to-stop-multitaski.html )
  • 84. • • • • • http://dragon-quest.jp/five/
  • 85. • • • C ...
  • 86. • • ( ) •
  • 87. Re-Discover • • : • GC • Javascript • •
  • 88. LL • • •
  • 91. ?
  • 92. 1. : Ray Tracing http://lucille.sourceforge.net/gallery/0_1_3/index.html
  • 93. • • : • • •
  • 94. 2. “ ” http://blogs.itmedia.co.jp/yasusasaki/2010/07/ipad-ab70.html
  • 95. 2. • try-error ...? • • Pixelmator •
  • 96. 3. http://commons.wikimedia.org/wiki/File:Box2d-screenshot.png http://www.flickr.com/photos/nh567/1406671607/ http://www.flickr.com/photos/overig/4639331740/
  • 98. •3 •2 →3
  • 99.
  • 100. LL • • LL • • • • • ?