Difference between revisions of "GridPACK Release Notes"

From GridPACK
Jump to: navigation, search
Line 5: Line 5:
 
* An initial interface to a standard optimization library has been implemented in GridPACK™ and used to develop a basic unit commitment application. This interface can be used to link GridPACK™ with the CPLEX optimizer package for quadratic, linear, and mixed integer programming. The GNU linear programming kit (GLPK) is also supported for linear and mixed integer programming. Neither package is supplied with GridPACK™ and must be obtained separately. We plan on further refining the optimization module and also to provide interfaces to more optimization libraries.
 
* An initial interface to a standard optimization library has been implemented in GridPACK™ and used to develop a basic unit commitment application. This interface can be used to link GridPACK™ with the CPLEX optimizer package for quadratic, linear, and mixed integer programming. The GNU linear programming kit (GLPK) is also supported for linear and mixed integer programming. Neither package is supplied with GridPACK™ and must be obtained separately. We plan on further refining the optimization module and also to provide interfaces to more optimization libraries.
 
*GridPACK™ has been adapted to use the Progress Ranks implementation of the Global Arrays library.This is a high performance implementation of GA based on well-supported features of MPI-1 and MPI-2 and is therefore highly portable to most leadership class machines.
 
*GridPACK™ has been adapted to use the Progress Ranks implementation of the Global Arrays library.This is a high performance implementation of GA based on well-supported features of MPI-1 and MPI-2 and is therefore highly portable to most leadership class machines.
 +
 
== GridPACK v2.0.2 ==
 
== GridPACK v2.0.2 ==
 
V2.0.2 patch: There is a problem with serialization that causes GridPACK™ applications to crash on the IBM BlueGene platform. This patch provides a fix.
 
V2.0.2 patch: There is a problem with serialization that causes GridPACK™ applications to crash on the IBM BlueGene platform. This patch provides a fix.

Revision as of 18:03, 21 December 2015

GridPACK v3.0

GridPACK™ version 3.0 includes several new features. These are enumerated below. We will also be updating documentation in the near future but users that have questions are encouraged to contact the GridPACK™ development team directly through the https://gridpack.org web page.

  • The math library interface has been extended to support both real and complex matrices and vectors, regardless of what the underlying libraries support. In the past, only complex matrices were supported and the PETSc libraries had to be built so that they used complex numbers. The current version of GridPACK™ will support both real and complex vectors and matrices regardless of whether or not the underlying math library supports one or the other. However, higher performance will be achieved by using a math library that matches most of the matrices and vectors in the application. If the application uses primarily complex matrices then it would be better to use a math library that supports complex numbers.
  • An initial interface to a standard optimization library has been implemented in GridPACK™ and used to develop a basic unit commitment application. This interface can be used to link GridPACK™ with the CPLEX optimizer package for quadratic, linear, and mixed integer programming. The GNU linear programming kit (GLPK) is also supported for linear and mixed integer programming. Neither package is supplied with GridPACK™ and must be obtained separately. We plan on further refining the optimization module and also to provide interfaces to more optimization libraries.
  • GridPACK™ has been adapted to use the Progress Ranks implementation of the Global Arrays library.This is a high performance implementation of GA based on well-supported features of MPI-1 and MPI-2 and is therefore highly portable to most leadership class machines.

GridPACK v2.0.2

V2.0.2 patch: There is a problem with serialization that causes GridPACK™ applications to crash on the IBM BlueGene platform. This patch provides a fix.

GridPACK v2.0.1

V2.0.1 patch: The original release was missing files in the network directory. This patch fixes that problem.

GridPACK v2.0

This release of GridPACK™ contains several new features and a new example application, as well as multiple bug fixes and performance enhancements. It also contains a new Fortran 2003 interface that allows users access to almost all the GridPACK™ functionality. The new power grid application is a state estimation code that can be used to find optimal values of the voltage magnitude and phase angle based on measurements of the power grid system. To implement this calculation, several new features were added to the GridPACK™ framework. These include a more general mapping capability for constructing the matrices used in solving power grid problems and a data distribution module that automatically distributes data to the processes containing the buses and branches that need the data.

The existing mapper functionality supports systems where variables and equations are associated with the buses. This is the case for systems such as powerflow and dynamic simulation. With state estimation, equations are associated with measurements that occur on the branches and a new model for mapping elements from the network to matrices and vectors is required. This has been implemented in Version 2.0 and is available through new generalized mapping modules.

Many power grid applications have large amounts of data that map to individual buses and branches but are not included in the original network configuration file. Mapping this data to a distributed network can be a major challenge. The hash distribution module can be used to redistribute data that has been read in on either a single processor or a collection of processors to the processor that owns the bus or branch objects that requires the data. The user interface for this module contains only a few simple commands but it can eliminate a large amount of complicated data exchanges.

Finally, a major new functionality is the initial release of a Fortran 2003 interface for the GridPACK™ toolkit. This interface supports most of the existing GridPACK functionality and contains an example powerflow application to illustrate how to use it. Additional documentation will be forthcoming. Most of the existing GridPACK constructs map directly to the new Fortran interface with only minor changes, mostly in naming conventions. The object-oriented nature of bus and branch types has been preserved using the Fortran 2003 support for polymorphic user types. Fortran does not support templated objects so application-specific bus, branch and factory classes need to start from template files. The templates provide stubs for framework methods that can be modified for specific applications. In addition, users can add their own procedures to these types for functionality that operates outside the framework.

GridPACK v1.1

This release of GridPACK™ contains several new features as well as multiple bug fixes and performance enhancements. Two new applications, illustrating the use of GridPACK components in building power grid simulation codes, are included as well as some additional codes that serve as pedagogical examples of how to use basic GridPACK functionality. The power grid applications include a contingency analysis code that can run multiple instances of the power flow simulation with individual transmission elements or generators eliminated from the calculation and a dynamic simulation code that can be used to evaluate the behavior of a temporary fault in one of the transmission elements.

Two example codes have also been included in this distribution that illustrate some of the features of the GridPACK™ framework without requiring users to master the complexities of a working power grid application. The first is a simple “hello world” code that shows how to create a simple network, initialize buses and branches on the network and use the IO modules to print a message from each bus and branch. The second example is a resistor grid application that solves a simple electric circuit problem for a network of electrical resistors. A current is induced in the system by holding two buses at different voltages. The code solves the corresponding linear electric circuit problem and prints out the potentials on all buses and the currents on all branches. This code adds a few elements beyond the “hello world” problem by showing how to create matrices based on properties of the grid and showing how to create a linear solver.

Besides including new applications and example codes, this release also includes improved communicators that can be used to implement multiple levels of parallelism in applications and a new task manager that can be used to distributed tasks on a first come, first serve basis. The task manager can be combined with the new communicators to implement dynamic load balancing calculations with relatively little effort. Several important bugs and performance issues have also been addressed in this release. The most important relates to how matrices are distributed internally. This bug was causing crashes in matrix-matrix and matrix-vector multiplies due to mismatched data distributions. Removing this bug has resulted in much more robust code for performing algebraic operations. Another significant performance bug has been the partitioner, which has been extremely slow for very large network configurations. Recent improvements have resulted in substantially better performance and reliability. However, issues remain for very large networks on many processors and the partitioning software remains an area of active development.

GridPACK v1.0.2

  • Improved performance of partitioning software significantly and fixed some bugs that were causing hangs on some workstations

GridPACK v1.0.1

  • Fixed parser so that powerflow application can run large WECC calculation

GridPACK v1.0

  • Original GridPACK release