March 16-18, 1999

Ramada Inn and Suites, Oak Ridge, TN

Tuesday, March 16, 1999

The meeting began at 9:00am. Everyone introduced themselves and a draft agenda was presented.

A move was taken to also include the beginning discussion of the model implementations in this first day of the meeting.

At the opening of the meeting 8 eligible voters were present -- Sandia, UT, NAG, UC Berkeley, NIST, HP/Convex, Notre Dame, and Mississippi State.

Mike Heroux took the floor to discuss Sparse BLAS chapter. There were mostly minor editorial comments. All references to Fortran 90/95 should be standardized to Fortran95.

A break was taken at 11am.

After the break, discussion began on model implementations. First, Andrew Lumsdaine presented the MTL library, and how it could be used to produce the model implementation.

A number of questions were raised:

  1. Should the reference implementation be generic and readable, or performance oriented? We want a model implementation to be portable. But since the model implementation of the BLAST document wil be so large, will the vendors optimize it? Or should we provide a reasonably optimal model implementation?
  2. Should we have one kernel implementation in C and then have wrappers in Fortran77 and Fortran95 on top of this? Or three separate implementations?
  3. Testing software must test the numerics of the operations as well as the interfaces. Numerical testing of the extended and mixed precision BLAS is particularly complex.
  4. Consistency of model implementations for separate chapters?

It was felt that C++ language is volatile for a model implementation. As MTL could also generate C code, this would be preferable. And what about test code? As it stands, most of the testing in MTL are software engineering tests. Numerical testing would need to be added.

A break was taken at 12:20pm.

Discussion continued at 1:30pm. Chao Yang of NEC arrived, and this increased the number of eligible voters to 9.

Jim Demmel then presented his proposed implementation scheme for the BLAS standard using m4. Numerical testing is a complex issue, particularly for the extended and mixed precision BLAS. Should the BLAST forum deliver "readable" source code or not?

A break was taken at 2:30pm.

Chenyi Hu had arrived and this brought our list of eligible voters to 10. Chenyi then presented the revisions that had been made to the Interval BLAS chapter since the "virtual" meeting and voting. Numerous suggestions were made on revisions. Questions were raised about the meaning of the CONVERT routines, and what is specified. Rename to round-out. Have convert and roundout! We need an FPINFO_I routine, and the number of digits specified in its interface. Some of this is being discussed in the Interval arithmetic group and Fortran 2000. The format of the C bindings was discussed, particularly the use of struct, and its impact on performance. All other chapters have chosen to not use struct's in the implementation due to issues of non-contiguous storage and thus performance. Two groups have agreed to do model implementations in C++ and Fortran95. They have the TOMS package for Fortran77 implementation. Jim had various ideas for test software for the interval BLAS. Chenyi will incorporate the modifications and present them at the meeting on the following day.

A break was taken at 3:45pm.

At 4pm, we then began the discussion of Chapter 1.

The meeting was adjourned at 5pm.

Wednesday, March 17, 1999

The meeting began at 9am with a summary of the previous day. A tentative agenda for the day will be:

and then on Thursday, we will decide how to do the last re-working of the document, and the announcement of the draft of the BLAST document.

Jim presented his proposed rewrites for the numerical accuracy sections for chapters 1, 2, 3, 4, and 5. Vote 10/0/0. He also briefly mentioned the issue that the IEEE 754 standard does not agree with the wording in SLAMCH, and this must be consistency. Will be discussed later.

At 10am, we then began the discussion of Chapter 2.

A break was taken at 11am.

After the break, discussion continued on Chapter 2.

A break was taken at 12:30pm.

We reconvened at 1:30pm and continued discussion of Chapter 2.

A break was taken at 3:00pm.

We resumed at 3:30pm, and Chenyi presented the revisions to Chapter 5. All bindings must be examined for questions of "empty intervals"., and minor typographical corrections to various sections.

The meeting was adjourned at 5:15pm.

Thursday, March 18, 1999

The meeting began at 9:30am. The tentative agenda for the day will be:

The tentative schedule for the BLAST document is as follows:

Jim discussed Chapter 4 modifications. All F95 bindings will be suffixed by _X to avoid confusion with Chapter 2. The default value for OPTIONAL argument PREC was discussed. Section 4.6 is removed. Vote on Chapter 4, 7/0/0. A sentence needs to be added to Chapter 1 to emphasize that the goals for Chapters 4 and 5 are different.

At 10:30am, the format of the proposed routine for applying multiple Givens rotations (ORM) was discussed, as well as the format for the Jacobi routine. The proposals will be checked with Linda before inclusion. A discussion of error returns began. The major point of contention was whether or not to allow a var args interface for the C error-handling routine. Should we have compatible error return for Fortran and C. Leave it the way it is, or change it? Or have both possible error returns in C?

  1. BLAS_ERROR ( name, -info, string )
  2. BLAS_ERROR ( name, -info, string, ... ) has a variable number of arguments, you can call with null.

Vote for #1 for both languages. 6/0/0. Names not clear. F_BLASERROR and C_BLASERROR?

Model implementations and test software were again discussed, as well as the issue of profiling as done in MPI. It was proposed that a template for GEMM in Fortran95, Fortran 77, and C be circulated to demonstrate how leading comments should be done. And also, provide a template for how the testing software should be organized. Portabililty and how the wrappers should be done. Produce testing software incrementally? The testing software is the major weight of the effort.

The consensus was that each chapter is responsible for its model implementation. The quantity of routines and thus the time and resources of producing a model implementation and test suite is formidable.

Jim Demmel and his m4 effort should continue to develop their model implementation for Chapter 4, and Andrew Lumsdaine and his MTL library should produce a model implementation. Using m4 and MTL to produce the model implementations will be the quickest way. Readability will be sacrificed as time and resources are the major constraints. Multiple efforts. Perhaps use pretty printers to improve the format and readability of the generated code. Macro processing must be used to produce the volume of routines. and

The kernel should be written in C because some routines will need malloc, but it was pointed out that it most convenient to write the complex arithmetic routines in Fortran. It is not easy to see how the mixing of languages will be avoided. It was suggested to produce the C interface first and then concern with other languages and interfaces.

The meeting was adjourned at 1pm.

Attendees list for the March 16-18, 1999 BLAST Forum Meeting

Susan Blackford      UT, Knoxville
Jim Demmel           UC Berkeley
Jack Dongarra        UT / ORNL  
Sven Hammarling      NAG, UK    
Mike Heroux          Sandia Nat Lab
Jeff Horner          UT         
Chenyi Hu            UH-DT      
John Liu             HP (MSG)   
Andrew Lumsdaine     UND        
Antoine Petitet      UT         
Roldan Pozo          NIST       
Avi Purkayastha      Miss State U.
Jeremy Siek          UND        
Clint Whaley         UT, Knoxville
Chao Yang            NEC        

Susan Blackford agreed to take minutes for the meeting.