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

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

近未来的並列 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 • • • • • ?