optimizing key parts of the dunia pipelinegood state: all-in ! early test show potential wins. 4...

82
Engine Architect - FarCry 4 Ubisoft Montréal @azagoth Rémi QUENIN Optimizing key parts of the DUNIA PIPELINE Fast iteration for

Upload: others

Post on 30-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Engine Architect - FarCry 4Ubisoft Montréal @azagoth

Rémi QUENIN

Optimizing key parts of the

DUNIA PIPELINEFast iteration for

Page 2: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

THE DUNIA PIPELINE 250 GiB of package per Day

Official + Test Maps

Over 3.7 Million Lines Of Code2.5 M. C++ Runtime

6 studios, 450 people in MontréalGetting data everyday

~500 checkins per day350 data, 150 code (+sound)

Page 3: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DATA FLOW IN THE DUNIA PIPELINE

Page 4: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DATA FLOW IN THE DUNIA PIPELINE

Page 5: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DATA FLOW IN THE DUNIA PIPELINE

BinarizeBinarize

Page 6: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

AUTOMATED TESTS IN THE DUNIA PIPELINE

BinarizeBinarize

Page 7: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FC3 WORST CASE SCENARIO

BinarizeBinarize

<1 min

<5 min

~40 min

~45 min

~15 min

Page 8: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FC3 WORST CASE SCENARIO

<1 min

2/15 min

~25 min

Page 9: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

OPTIMIZING

1 Optimizing Compilation Time

2 Optimizing Nightly Builds

3 Optimizing Package Synchronization

4 Optimizing Local Change Testing

The Pipeline

Page 10: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

COMPILATION TIME: FASTBUILDFrom 40 min to 4 min

1

Page 11: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

HISTORY Editor DLL : ~40 min

3.7 Million LOC

Unity/Blob builds : ~20 minBad Iteration

Engine Architect pet projectFASTBuild by Franta Fulin

Good State: All-in !Early test show potential wins

Page 12: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

4POINTS

PARALLELIZATIONMaximize local resources

CACHINGShare compilation results

BLOBBINGImprove iteration

FASTBuild

Share HW resourcesDISTRIBUTION

Page 13: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

WIN

PARALLELIZATION Compiling/Linking : DLL

Page 14: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PARALLELIZATION Before

After

Page 15: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Compiling : Static Libs

WIN

PARALLELIZATION

Page 16: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PARALLELIZATION

Visual Studio: Context Switching File Cache eviction

32 Core Machine: >1000 Processes!

Page 17: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PARALLELIZATION

FASTBuild: NUM_PROCESSORS

Page 18: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

CACHING

Write

Read

Page 19: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

CACHING

Write

Read WIN

Page 20: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

CACHING Before

After

Page 21: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

BLOBBING

WIN

Reducing header compilation

Page 22: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

BLOBBING

WIN

Edit

Modified File

StableWIN

Iteration

Page 23: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DISTRIBUTION

WIN

Page 24: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

MISCELLANEOUS

Link Dependencies Prevent useless relink

BatchingBuild machine, pre-submit checks

Page 25: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

REAL TIMINGS Editor-X64-Release DLL (before)

Editor-X64-Release DLL BLOB (before)

Incredibuild

FASTBuild

~40 mins

<4 mins (cache/distribution)

~20 mins

~10 mins (local PC!)

PS4: <1 min (cache/distribution)

~12 mins

Page 26: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

EDIT&CONTINUE

Too Much Code: Takes minutes +Microsoft dropping support

DLL with Hot ReloadAnother story: lot of great content available online

Incremental LinkingWhere it actually helps

Page 27: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

NIGHTLY BUILDS4 Times Faster

2

Page 28: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Improvements

6 hours

1.5 hours

45 Worlds

75 Worlds

Page 29: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PROFILINGUnderstand, optimize

RESOURCE CACHINGShare

HOW ?

Page 30: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Profiling Multi-Process

Process isolation

Multi-Machine Cluster of Workers

Interactions Working together

Big PictureUnderstand

Page 31: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Remote Profiling

Page 32: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Remote Profiling

On Top of Regular Tool Custom Performance Analyzer

Processes Shown as Threads Analyze Interactions

Fix ! Address Inefficiencies

Page 33: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Improvements: CPU Usage

Page 34: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Resource Caching

?

Page 35: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Resource Caching

Share Prevent useless work

Build MachinePopulate at night

EditorJIT Compilation (Just In Time)

Page 36: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Complex SystemKey: Understanding

Prevent useless workHardware is crucial

NIGHTLIES

Page 37: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Prevent Editor UsageCurrent Bottleneck

More IncrementalSome parts are not

FUTURE WORK

Page 38: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

OPTIMIZE PACKAGE SYNC.From 20min to 1sec

3

Page 39: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FARCRY3 AC3 Network

2012 SUMMER

Page 40: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

NETWORK

Page 41: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

OPTIMIZE PACKAGE SYNC.3

SOFTWARE: RTPAL3.1

HARDWARE: ASSET STORE

3.2

Page 42: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

SYNCH. PACKAGE: RTPALSoftware

3.1

Page 43: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PC BUILD

Differential Uploads

Sliced ISO

~50% Saving

Upload

STEAM PIPE

Page 44: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

WE KNOW OUR DATA

Big Files File boundaries

Redundancy Same Resource, Several Worlds

Amount of new Data ?Out of 20GB package

Page 45: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

WE KNOW OUR DATA

Textures: Main Resource80% of a package

Textures: Revisions Average 3 revisions

Page 46: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

SOLUTION

Slice BigFiles into Parts

Hash Parts using MD5

Produce a Manifest

Package

SLICINGInto Parts

Page 47: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

SOLUTION

LINK

Page 48: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

SOLUTIONVERSION 1 VERSION 2

?

LINK

Page 49: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

RESULTS

1GB new per 22GB package

40% Shrink Within Package

Reuse

95%2 Versions

Page 50: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

RESULTS

FC3: Few weeks + Milestones

FC4: >10 000 Manifests

History

1 YEARFull Prod. Proof

Page 51: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

THIS IS GOOD, BUT…

Regular Workflow…Gym/Test Map

20% of the package20% of 5% = 1%

Page 52: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

THIS IS GOOD, BUT…

Linking…20 GB to write

Deploy…zzzzz…..

Page 53: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

ON DEMAND

STREAM parts on demand

OPEN WORLD game

NETWORK is faster than crappy

HDD

Page 54: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FILE SYSTEM

VIRTUALIZE File Access

Regular DISK

MANIFEST Content

Page 55: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FILE SYSTEM STACK

FILE SYSTEM

?

Page 56: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FILE SYSTEM STACK

NETWORK FS

?

Page 57: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FILE SYSTEM STACK

MANIFEST FS

NETWORK FS

?

?

Page 58: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FILE SYSTEM STACK

MANIFEST FS

NETWORK FS

CACHE FS

?

?

RTPAL

FILE SYSTEMFILE SYSTEMFILE SYSTEM

Page 59: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

RTPAL

Page 60: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

STORAGE AND TRANSFER REDUCTIONHistory, Transfers

UNIFIED WORKFLOWFor all platforms

INSTANT PACKAGE SYNC1 click

RTPAL

Page 61: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Re-Invents Package Distribution

By Getting RID of Package Distribution

RTPAL

Page 62: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

SYNCH. PACKAGE: ASSET STOREHardware

3.2

Page 63: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

HIGH PERFORMANCEIOPS/Throughput

QUICKLY SCALABLE, HIGH CAPACITYAdapt to workload

ROBUSTFailure tolerance

NEEDS

Page 64: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

2012 SOLUTIONS

Page 65: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

GLUSTER FS

Distributed file systemCluster of PCs

Replication between nodesUp to 3 copies of a file

2 Network interfacesOne for internal data exchange

Page 66: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

GLUSTER FS

8 x High End PCsHPZ420 (32GB RAM, 6 HT CPUs 3.2GHz)

8 x High End SDDOn Sata3 RAID0 Controller card

2 x Network Interfaces10 Gb/s

Page 67: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

TESTGLUSTER FS – 8 NodesTHROUGHPUT – 30 users, 14 GiB

IOPS – 100k x 1KiB

18MiB/s/user (13min)SAN/EMC

GLUSTER 73MiB/s/user (3min)

SAN/EMC

GLUSTER 544 000 IOPS

250 000 IOPS

Page 68: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

GLUSTER - COST

0 500 1000 1500 2000 2500 3000

Speed (MiB/s)

050100150200250300350400

Cost (k$)

GLUSTER

SAN VIOLIN

SAN EMC

Page 69: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

USAGE SCHEMES

RTPalPackage distribution

Resources cachingTransformed assets

Code compilation cacheFASTBuild

Page 70: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

Re-Evaluate CEPHImproved since 2012

Improve Healing ProcessIf still with Gluster

FUTURE WORK

Page 71: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

LOCAL ITERATION: DEVPATCHERFrom a Day to Minutes

4

Page 72: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

FARCRY3 Fixes Nightmare

2012 SUMMER

Page 73: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

WHAT IF…

Detect CHANGES

Handles COMPILATION

Handles BIG FILE creation

Introducing

PATCHINGas a Workflow

Page 74: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

3STAGES

DETECTING CHANGECompile Dep.

PACKAGING CHANGEPatch BigFile

APPLYING CHANGEBigFile Stack

CREATE PATCH

Page 75: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DETECTING CHANGES

INPUTS

1

COMPILE DEP.

Page 76: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PACKAGING CHANGES2

NIGHTLY BUILD

Page 77: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

PACKAGING CHANGES

OK

OK

FAIL

2

Page 78: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

APPLYING CHANGES?

3

Page 79: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

RTPal Compile Dep. STACK FS

DEVPATCHER & RTPAL

Page 80: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

DUNIA

1 FASTBuild

2 Fast Nightly Builds

3 RTPal & Asset Store

4 DevPatcher

The Pipeline

Page 81: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

THANKS & CREDITS

Franta Fulin / FASTBuild (http://fastbuild.org/) Jean-Francois Cyr / DevPatcher Olivier Deschamps / DevPatcher Laurent Chouinard / AssetStore Jonhatan Chin / AssetStore Jocelyn Hotte / AssetStore

Page 82: Optimizing key parts of the DUNIA PIPELINEGood State: All-in ! Early test show potential wins. 4 POINTS PARALLELIZATION Maximize local resources ... Custom Performance Analyzer Processes

&

QUESTIONS?Thank you!

@[email protected]

Rémi QUENIN