alternative parallel processing approaches jonathan sagabaen
TRANSCRIPT
Alternative Parallel Alternative Parallel Processing ApproachesProcessing Approaches
Jonathan SagabaenJonathan Sagabaen
OverviewOverview
Neural NetworksNeural Networks
Systolic ArraysSystolic Arrays
Dataflow ComputingDataflow Computing
Dataflow ComputingDataflow Computing
Data flows Data flows continuously and is continuously and is available to multiple available to multiple instructions at the instructions at the same timesame time
Each instruction is Each instruction is considered to be a considered to be a separate processseparate process
An instruction is An instruction is executed when the executed when the data necessary for data necessary for execution become execution become available available
Example >>Example >>
Instructions do not Instructions do not reference memory; reference memory; instead, they instead, they reference other reference other instructionsinstructions
Dataflow ComputingDataflow Computing
Updating spreadsheetUpdating spreadsheet
In a spreadsheet you In a spreadsheet you can specify a cell can specify a cell formula which formula which depends on other depends on other cells cells
Then when any of Then when any of those cells is those cells is updated the first updated the first cell's value is cell's value is automatically automatically recalculated recalculated
Neural NetworksNeural NetworksAlso known asAlso known as
Connectionist Connectionist systemssystemsAdaptive systemsAdaptive systemsParallel distributed Parallel distributed processing systemsprocessing systems
Neural network computers are composed of a Neural network computers are composed of a large number of simple processing elements that large number of simple processing elements that individually handle one piece of a much larger individually handle one piece of a much larger problemproblem
Neural NetworksNeural Networks
A neural net consists A neural net consists of processing of processing elements (PEs), elements (PEs), which multiply inputs which multiply inputs by various sets of by various sets of weights, yielding a weights, yielding a single output valuesingle output value
As a neural network As a neural network is learning, it can is learning, it can make a mistake make a mistake
When it does, When it does, weights and weights and thresholds must be thresholds must be changed to changed to compensate for the compensate for the errorerror
Example >>Example >>
Chicken exampleChicken exampleYou show a child a You show a child a chicken and tell him it's chicken and tell him it's a birda bird
Then you show the child Then you show the child an owlan owl
However, if we show a child a chicken, a However, if we show a child a chicken, a sparrow, a duck, a hawk, a pelican, and a crow, sparrow, a duck, a hawk, a pelican, and a crow, then it's more likely he'll make the conclusion that then it's more likely he'll make the conclusion that it is a bird.it is a bird.
It's likely that the child It's likely that the child won't recognize the owl won't recognize the owl as a birdas a bird
Commonly used for Commonly used for
Quality controlQuality control
Financial and economic forecastingFinancial and economic forecasting
Speech and pattern recognitionSpeech and pattern recognition
Health care cost reductionHealth care cost reduction
Bankruptcy predictionBankruptcy prediction
Machine DiagnosticsMachine Diagnostics
Securities tradingSecurities trading
Target MarketingTarget Marketing
Commonly used for Commonly used for
Artificial Intelligence Artificial Intelligence
Weather forecastingWeather forecasting
Oil and gas exploration Oil and gas exploration
Systolic ArraysSystolic Arrays
They are a network They are a network of processing of processing elements that elements that rhythmically compute rhythmically compute data by circulating it data by circulating it through the systemthrough the system
A systolic array is a pipe network A systolic array is a pipe network arrangement of processing units called cells arrangement of processing units called cells where each cell compute data and store it where each cell compute data and store it independently of one anotherindependently of one another
Systolic ArraysSystolic Arrays
ProsPros ConsConsHighly specialized Highly specialized thus inflexible to thus inflexible to problems to solveproblems to solve
Short connectionsShort connectionsSimple designSimple designHighly scalableHighly scalableRobustRobustCompactCompactEfficientEfficientCheapCheap
Commonly used for Commonly used for repetitive tasks such as:repetitive tasks such as:
Fourier transformationsFourier transformationsImage processingImage processingData compressionData compressionShortest path problemsShortest path problemsSortingSortingSignal processingSignal processingMatrix computationsMatrix computations