+ All Categories
Home > Documents > Palmer Laboratory - US Department of...

Palmer Laboratory - US Department of...

Date post: 29-May-2018
Category:
Upload: vannga
View: 213 times
Download: 0 times
Share this document with a friend
18
GridPACK™ Framework for Developing Power Grid Applications on High Performance Computing Architectures Bruce Palmer Pacific Northwest National Laboratory Collaborator: Argonne National Laboratory June 17, 2014 1 The power grid, despite it size and complexity, is still being modeled primarily using workstations Serial codes are limited by memory and processor speed, and this limits the size and complexity of existing models Modeling large systems using small computers involves substantial aggregation and approximations Parallel computing can potentially increase memory and computing power by orders of magnitude, thereby increasing the size and complexity of power grid models that can be simulated using computing Parallel computing is more complex than writing serial code and the investment costs are relatively high Parallel software is a rapidly changing field and keeping up with new developments can be both expensive and time consuming Advancement is needed in grid modeling 2
Transcript

GridPACK™ Framework for Developing Power Grid Applications on High 

Performance Computing ArchitecturesBruce Palmer

Pacific Northwest National LaboratoryCollaborator: Argonne National Laboratory

June 17, 2014

1

The power grid, despite it size and complexity, is still being modeled primarilyusing workstations

Serial codes are limited by memory and processor speed, and this limits thesize and complexity of existing models

Modeling large systems using small computers involves substantialaggregation and approximations

Parallel computing can potentially increase memory and computing power byorders of magnitude, thereby increasing the size and complexity of power gridmodels that can be simulated using computing

Parallel computing is more complex than writing serial code and theinvestment costs are relatively high

Parallel software is a rapidly changing field and keeping up with newdevelopments can be both expensive and time consuming

Advancement is needed in grid modeling

2

3

Outline 

Objectives

Impact

GridPACK™ Framework

Performance Results

Objectives

4

Simplify development of HPC codes for simulating power grid Create high level abstractions for common programming motifs

in power grid applications Incapsulate high performance math libraries and make these

available for power grid simulations Promote reuse of power grid software components in multiple

applications to reduce development and maintenance costs Incorporate as much communication and indexing calculations

as possible into high level abstractions to reduce applicationdevelopment complexity

Compartmentalize functionality to reduce maintenance anddevelopment costs

5

Impact

Access to larger computers with more memory andprocessing power

Models containing larger networks and higherlevels of detail can be simulated

Reduced time to solution Greater capacity for modeling contingencies and

quantifying uncertainty

6

GridPACK™ framework

Core Data Objects

Power Grid Network

Matrices and Vectors

Application Driver

Base Network Components• Neighbor Lists• Matrix Elements

Math and Solver Module• PETSc

Mapper

Network Module• Exchanges• Partitioning

Task Manager

Import Module• PTI Formats• Dictionary

Export Module• Serial IO• PTI Formats

GridPACK™ Framework

Configure Module• XML

GridPACK™ Applications

Utilities• Errors• Profiling

Base Factory• Network‐wide 

Operations

Application FactoryApplication Components

Y‐matrix

Dynamic Simulation

Powerflow

7

GridPACK™ network module

Network: Manages the topology and partitioning ofthe network Provides a framework for inserting application

specific bus and branch models Keeps track of neighbor relationships Partitions network between processors (the

partitioner is built on top of the Parmetis library) Manages ghost buses and branches representing

parts of the network on other processors andimplements data exchanges between processors

8

Network component templates to describe arbitrary power grid models

Framework‐defined interface

User‐defined model

9

Partition of the WECC network

WECC (Western Electricity Coordinating Council) network partitioned between 16 processors

10

Mapper module

Generic tool for generating vectors and matrices fromnetwork components (buses and branches) Network components are responsible for evaluating their

local contributions to vector or matrix Calculations are usually simple and involve only elements

that are immediately connected to the contributingcomponent

Mapper is responsible for identifying the global locationof the contribution in the matrix

Sum over branches to get bus entry

Yii=-∑jYij

11

Mapper module

1 2 3

4

5

6

78

12

11

109

12

Matrix contributions from network components

1 2 3

4

5

6

78

12

11

109

No matrix contribution

No matrix contribution

No matrix contribution

13

Distribute component contributions and eliminate gaps

14

Powerflow Jacobian from mapper(1 processor)

16351 bus WECC system

15

Powerflow Jacobian from mapper(4 processors)

16351 bus WECC system

16

Powerflow Jacobian from mapper(16 processors)

16351 bus WECC system

17

Other modules

Math: Provide high level abstractions for distributed matrices andvectors Built on top of PETSc math libraries Creation of distributed matrices and vectors Access to the complete suite of linear and non‐linear solvers in

PETSc Supports basic algebraic operations (matrix‐vector multiply,

transpose, etc.) Factory

Implements operations that run over entire network Initializations, function evaluations on all buses and branches, etc.

Parser: ingest network from external configuration file Currently supports PTI v23 format, other formats are being

developed Output

Organizes output from buses and branches in a consistent manner

18

Applications

Powerflow Demonstrates basic functionality of GridPACK™, including

networks, mappers and solvers Hand‐coded Newton‐Raphson loop and non‐linear solver

implementation Dynamic simulation

Dense matrices Algebraic manipulations Local modifications of matrices

Static Contingency Analysis Managing multiple independent tasks

Dynamic Contingency Analysis Multiple levels of parallelism

19

Performance results

Applications Powerflow Dynamic Simulation Dynamic Contingency Analysis

Strong scaling performance Fixed size problem, increasingnumber of processors

0.0

50.0

100.0

150.0

200.0

250.0

300.0

350.0

400.0

0 10 20 30 40 50 60 70

ParsingPartitioningSolverTotal

Tim

e (

seco

nds

)

Number of Processors20

Powerflow scaling for artificial 777646 bus network

Solver performance for powerflowcalculation on artificial 777646 bus network 

21

Shared memory effects

0.0

200.0

400.0

600.0

800.0

1000.0

1200.0

1 2 3 4 5 6 7 8 9

8 Processors16 Processors32 Processors

So

lver

Tim

e (s

eco

nds)

Number of SMP Nodes

22

Processor configurations and shared memory

SMP Node

Processing Core

Shared Memory

16 processors on2,4,8 nodes

23

Shared memory effects

Less memory per processor

More internode communication over network

0.0

200.0

400.0

600.0

800.0

1000.0

1200.0

0 0.2 0.4 0.6 0.8 1 1.2

8 Processors16 Processors32 Processors64 Processors

So

lve

r T

ime

(se

cond

s)

Shared Memory Ratio (N/P)

0.0

50.0

100.0

150.0

200.0

0 10 20 30 40 50 60 70

PartitionSolverMultiplyTotal

Tim

e (

seco

nds

)

Number of Processors

Simulation of 16351 bus WECC network

24

Dynamic simulation

25

Subtasks on processor groups

World Group

Parallel tasks running on subgroups

26

Multiple levels of parallelism

8 tasks, 4 processors

8 processors

16 processors (2 levels of parallelism)

10.0

100.0

1000.0

10000.0

1 10 100 1000

SolveMultiplyTotal

Tim

e (

seco

nds

)

Number of Processors

27

Dynamic contingency analysis

Simulation of 16 contingencies on 16351 bus WECC network

2 levels of parallelism

28

Development team

Bruce Palmer (PI): Parallel code development William Perkins: Parallel code development Yousu Chen: Power grid application development Shuangshuang Jin: Power grid application development David Callahan: Data integration Kevin Glass: Data integration and optimization Ruisheng Diao: Power grid engineering and model validation Stephen Elbert: Optimization and economic modeling Mallikarjuna Vallem: Synthetic data and model validation Nathan Tenney: Automatic builds and testing Zhenyu (Henry) Huang: Program management

29

Conclusion 

GridPACK™ has been successfully deployed and is available tothe public at https://gridpack.org, along with documentation

Multiple demonstration programs of power grid applicationshave been developed with GridPACK™ and have shown scalingbehavior. These include Powerflow Dynamic Simulation Static Contingency Analysis Dynamic Contingency Analysis

Development of state estimation calculation and Fortraninterface is underway

Mini‐tutorial at 3rd at Workshop on Next‐Generation Analyticsfor the Future Power Grid, PNNL, Richland, WA, July 17‐18, 2014

30

Contacts

Bruce Palmer (PI): [email protected]

GridPACK™ webpage: https://gridpack.org

Webpage

31

32

GridPACK™ Toolkit

Research Objective: GridPACK™ is a collection of modules designed to simplify the

development of power grid programs that can run on today’s high performance computing architectures

Research Highlights Base modules for the GridPACK™ toolkit have been developed

and includeo Network module for creating and distributing power grid

network models over multiple processorso Network component interfaces that define how bus and

branch models interact with the rest of the GridPACK™ framework

o Math modules that support the creation of distributed matrices and vectors and implement linear and non-linear solvers

o Mapper modules that support the creation of matrices and vectors from network models.

Completed development of a parallel power flow, dynamic simulation and contingency analysis applications using the GridPACK™ functionality and demonstrated parallel speedup for all applications

GridPACK™ software is available on website https://gridpack.org, along with substantial documentation

Mapper

33

Powerflow code

1 typdef BaseNetwork<PFBus,PFBranch> PFNetwork;2 Communicator world;3 shared_ptr<PFNetwork>4 network(new PFNetwork(world));56 PTI23_parser<PFNetwork> parser(network);7 parser.parse("network.raw");8 network->partition();9

10 PFFactory factory(network);11 factory.load();12 factory.setComponents();13 factory.setExchange();14 15 network->initBusUpdate();16 factory.setYBus();17 factory.setMode(YBus);18 FullMatrixMap<PFNetwork> mMap(network);19 shared_ptr<Matrix> Y = mMap.mapToMatrix();2021 factory.setSBus();22 factory.setMode(RHS);23 BusVectorMap<PFNetwork> vMap(network);24 shared_ptr<Vector> PQ = vMap.mapToVector();26 factory.setMode(Jacobian);27 FullMatrixMap<PFNetwork> jMap(network);28 shared_ptr<Matrix> J = jMap.mapToMatrix();

29 shared_ptr<Vector> X(PQ->clone());3031 double tolerance = 1.0e-6;32 int max_iteration = 100;33 ComplexType tol = 2.0*tolerance;34 LinearSolver isolver(*J);3536 int iter = 0;3738 // Solve matrix equation J*X = PQ39 isolver.solve(*PQ, *X);40 tol = X->norm2();4142 while (real(tol) > tolerance &&43 iter < max_iteration) {44 factory.setMode(RHS);44 vMap.mapToBus(X);45 network->updateBuses();46 factory.setMode(RHS);47 vMap.mapToVector(PQ);48 factory.setMode(Jacobian);49 jMap.mapToMatrix(J);50 LinearSolver solver(*J);51 solver.solve(*PQ, *X);52 tol = X->norm2();53 iter++;54 }

34

Task Manager

Global Task Counter

Process 0 Process 1 Process 2 Process 3

nextTask=3nextTask=1nextTask=2nextTask=0

35

Static contingency analysis

10.0

100.0

1000.0

10000.0

1 10 100 1000 104

Tim

e (

seco

nds

)

Number of Processors

Static Contingency Analysis of WECC system using 1 processor per contingency for 3638 contingencies

36

Distribution of times in solver loop

Static Contingency Analysis of WECC system using 1 processor per contingency for 3638 contingencies

0.0

50.0

100.0

150.0

200.0

250.0

300.0

350.0

1 2 3 4 5 6 7

Fre

qu

en

cy

Time (seconds)

Converged

Unconverged


Recommended