extend ../_components/base.pug

block pagetitle
    | High Performance Computing   

block css 
    link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/high-performance-computing.css?ver=" + config.version)



block main
    - global.pageHref = "usecases"
    - config.hdrClassName = "hdr__blue"
    include ../_components/header.pug


    section.innerhero
        .container.innerhero__cont
            .innerhero__main
                h1.h1.innerhero__h1 High Performance <br>Computing
                    span.highperf__herosmall  With Apache Ignite
                .innerhero__descr.pt-2.h5.
                    Minimize network utilization by executing kilobyte-size custom <br>code over petabytes of data 
                .innerhero__action 
                    a.button.innerhero__button(href="https://ignite.apache.org/docs/latest/index") Start Coding
            img.innerhero__pic.innerhero__pic--highperf(src="/public/img/usecases/high-peformance/hero.svg", alt="High Performance Computing")
    // /.innerhero



    section.high1.container 
        .capstext.pb-5 High Performance Computing Overview
        .high1__wrap.flexi
            .high1__main.pt-1
                h3.h5.high1__title What is high performance computing?
                .high1__text.pt-3.pb-5
                    p High-performance computing is the ability to process data and perform complex calculations at high speeds. 
                    p You keep all your data on the cluster node and execute your kilobyte-size custom code over petabytes of data avoiding network-like utilization.
                h3.h5.high1__title How it works
                .high1__text.pt-2
                    .high1__sub.pb-2 In traditional disk-based systems, <br>such as relational or NoSQL databases
                    p Client applications usually bring data from servers, use the records for local calculations, and discard the data as soon as the business task is complete.
                    p This approach does not scale well if a significant volume of data gets transferred over the network.
                    .high1__sub.pt-2.pb-2 In in-memory computing systems, <br>such as Apache Ignite
                    p Apache Ignite supports a co-located processing technique. The primary aim of this technique is to increase the performance of your data-intensive or compute-intensive calculations by running them straight on Ignite cluster nodes. 
                    p In co-located processing, calculations are done on local data sets of the cluster nodes. This avoids records shuffling over the network and eliminates the impact of network latency on the performance of your applications.
            aside.high1__picwrap 
                img(src="/public/img/usecases/high-peformance/perf-pic.svg", alt="").high1__pic
                .high1__picdescr.flexi 
                    .high1__arrowline.flexi
                        i 1
                        p – Map Phace
                    .high1__arrowline.flexi
                        i 2
                        p – Execution Phase
                    .high1__arrowline.flexi
                        i 3
                        p – Reduse Phace
    // /.high1



    section.high2 
        .container
            .capstext Benefits Of Apache Ignite Compute APIs
            .high2__wrap
                .high2__block 
                    .high2__title Broadcast or execute on specific nodes
                    .high2__text 
                        p — Broadcast your tasks to&nbsp;use all the CPUs of&nbsp;your distributed cluster.
                        p.pt-1 — Or&nbsp;execute your computations on&nbsp;a&nbsp;specific group of&nbsp;nodes.
                .high2__block 
                    .high2__title Load balance your querie
                    .high2__text
                        p If&nbsp;some of&nbsp;the nodes are over-utilized, Ignite can load balance your calculations to&nbsp;the other node.
                .high2__block 
                    .high2__title All computations are fault-tolerant
                    .high2__text
                        p Some computations might take minutes or&nbsp;hours to&nbsp;complete, e.g. drug discovery or&nbsp;logistics planning. You don&rsquo;t need to&nbsp;start from the very beginning if&nbsp;something goes wrong.
    // /.high2



    section.highicons.container 
        h2.h4 Sample Data- And Compute-Intensive Tasks That <br>Leverage High Performance Computing
        .highicons__wrap.pt-5 
            .highicons__item
                .highicons__iconwrap.flexi 
                    img(src="/public/img/usecases/high-peformance/icon-perf1.svg", alt="").highicons__icon
                .highicons__title Finance
                .highicons__descr e.g. fraud-detection, risk management, financial modeling
            .highicons__item
                .highicons__iconwrap.flexi 
                    img(src="/public/img/usecases/high-peformance/icon-perf2.svg", alt="").highicons__icon
                .highicons__title Retail & Hospitality
                .highicons__descr e.g. recommendation systems, 360 customer experience
            .highicons__item
                .highicons__iconwrap.flexi 
                    img(src="/public/img/usecases/high-peformance/icon-perf3.svg", alt="").highicons__icon
                .highicons__title Media & Entertainment
                .highicons__descr e.g. creating animations, rendering special effects
            .highicons__item
                .highicons__iconwrap.flexi 
                    img(src="/public/img/usecases/high-peformance/icon-perf4.svg", alt="").highicons__icon
                .highicons__title Logistic and transportation
                .highicons__descr e.g. logistics planning, detecting potential hazardous situations
            .highicons__item
                .highicons__iconwrap.flexi 
                    img(src="/public/img/usecases/high-peformance/icon-perf5.svg", alt="").highicons__icon
                .highicons__title Biotech
                .highicons__descr e.g. drugs and vaccines discovery, sequencing DNA
    // /.highicons



    section.highcases.container
        h2.h4 High Performance Computing Ignite <br>User Stories
        .highcases__one.flexi.pt-2.pb-4
            .highcases__topleft
                .highcases__subtitle.pb-2 Personalized websites with dynamically changing content
                p.pb-3 Whenever you visit Amazon, Walmart, Booking.com, or other websites, you see personalized content, such as relevant deals made especially for you.
                p Personalized content considering your age, location, preferences, and previous interactions is being processed and displayed in few seconds thanks to high-performance computing tasks that process gigabytes of data within a second.
            .highcases__topright
                +powvideo(
                    "https://www.youtube.com/watch?v=qYd9GGRC4L0",
                    "/public/img/usecases/high-peformance/video-1.png",
                    "",
                    "An Ignite Compute Grid <br>In The Cloud"
                )
                    p <strong>HomeAway,</strong> rental website with personalized offer
            
        .highcases__two.pt-4.pb-4
            .highcases__subtitle.pb-2 Data-driven modelling and simulations
            p To create a new vaccine or drug you have to run thousands or millions <br>of simulations to come up with the best formula.
            .highcases__twowrap.flexi.pt-5
                .highcases__twoitem
                    +powvideo(
                        "https://www.youtube.com/watch?v=PFHb-UuhGkk",
                        "/public/img/usecases/high-peformance/video-2.png",
                        "",
                        "Data Driven Drug Discovery"
                    )
                    p <strong>E-Therapeutics</strong> uses Apache Ignite capabilities for drug discovery
                .highcases__twoitem
                    +powvideo(
                        "https://www.youtube.com/watch?v=NUxdoL-K9Ys",
                        "/public/img/usecases/high-peformance/video-3.png",
                        "",
                        "How nference.ai Leverages Ignite For Distributed Analytics In The Bioinformatics Domain",
                        "comvideo__txt--small"
                    )
                        p <strong>nference.ai:</strong> high performance compute APIs used to&nbsp;define different statistical analyses and execute numerical data in&nbsp;real-time
    
        .highcases__one.flexi.pt-4.pb-4
            .highcases__topleft
                .highcases__subtitle.pb-2 Logistic and transportation companies use advanced calculations for logistics planning
                p <strong>Dutch Railways</strong> have thousands of different trains to deliver cargo and people across the country. They need to calculate how all those trains should be moving in real time. These calculations also happen with high compute APIs.
            .highcases__topright
                +powvideo(
                    "https://www.youtube.com/watch?v=wkCW8YC8eKU",
                    "/public/img/usecases/high-peformance/video-4.png",
                    "",
                    "Detecting Potential Hazardous Situations In The Dutch Railway Planning Using Apache Ignite",
                    "comvideo__txt--small"
                )

        .highcases__two.pt-4
            .highcases__subtitle.pb-2 Real-time analytics to enable fast and precise decisions
            p High performance computing allows to process unlimited data sets and analyze <br>them in seconds.
            .highcases__twowrap.flexi.pt-5
                .highcases__twoitem
                    +powvideo(
                        "https://www.youtube.com/watch?v=jF9T2cJB6t0",
                        "/public/img/usecases/high-peformance/video-5.png",
                        "",
                        "High Performance Exposure Management With Apache Ignite",
                        "comvideo__txt--small"
                    )
                    p <strong>JPMorgan Chase</strong> use Apache Ignite for heavy computations which help to&nbsp;make effective exposure management.
                .highcases__twoitem
                    +powvideo(
                        "https://www.youtube.com/watch?v=B8A8yR_e6VM",
                        "/public/img/usecases/high-peformance/video-6.png",
                        "",
                        "Real Time Exposure Management Using Ignite",
                        ""
                    )




    section.native-bottom.container
        .native-bottom__grid 
            article.nativebotblock
                h3.h4.nativebotblock__title
                    img(src="/public/img/features/native-rocket.svg", alt="").nativebotblock__icon
                    span Ready to Start?
                p.nativebotblock__text Discover our quick start guide and build <br>your first application in 5-10 minutes
                a.nativebotblock__link.arrowlink(href="https://ignite.apache.org/docs/latest/", target="_blank") Quick Start Guide
            article.nativebotblock.nativebotblock--learn
                h3.h4.nativebotblock__title
                    img(src="/public/img/features/native-docs.svg", alt="").nativebotblock__icon
                    span Want to View More Use-Cases?
                p.nativebotblock__text Check out success stories from <br>different industries across the world
                a.nativebotblock__link.arrowlink(href="/use-cases/provenusecases.html") Companies Stories