SlideShare une entreprise Scribd logo
1  sur  101
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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?
 

En vedette

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
 

En vedette (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
 

Similaire à 近未来的並列 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
 

Similaire à 近未来的並列 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
 

Dernier

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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
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...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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