------------------------------------------------------------------------ Minutes for J3 Meeting 215 ========================== 1. Monday, February 12, 2018 8:00 am ------------------------------------- 1.1 Opening business D. Nagle Remarks from the chair D. Nagle Adoption of agenda D. Nagle Clune/Snyder : UC Approval of Meeting 214 minutes D. Nagle Steidel / Klimowicz : UC INCITS/OMC report (if any) D. Nagle No news WG23 report (if any) D. Nagle Gary attended most recent teleconference, but did not actively engage J11 Liaison report (if any) D. Nagle CPlex is winding down as J11 has accepted it. MPI Liaison report (if any) B. Long FP16 support (128 byte) Fault tolerance discussions on whose responsibility it should be to clean up certain resources. Agreement that users would have to do at least some cleanup, since MPI does not have enough information to do everything. Exascale Computing Program: MPI survey showed Fortran losing some ground. Ideally use of coarrays contributed, though probably use of C++ and Python was the bigger reason. SHMEM bonus report B. Long The Fortran interface for Shmem is moving to an Annex. Will be completely rewritten using more modern Fortran. Plans include C interop to call the C library, a module (replaces the include file), and getting rid of the "Cray pointer" declarations and symmetric memory allocator, replacing them with coarrays. OpenMP Liaison report (if any) B. Long TR6: OpenMP 5.0 Preview 2 was released during Supercomputing 2017. This will be the final preview release before the final OpenMP 5.0 release in November 2018. TR6 added the following new features (from press release): - Support for multilevel memory systems: OpenMP 5.0 will include memory allocation mechanisms that intuitively place data in different kinds of memories; - Support for descriptive loop optimizations: The concurrent construct asserts that all iterations of the associated loop nest may be executed concurrently in any order, which will enable many implementation-specific compiler optimizations; Since the release of TR6, the language committee has continued to discuss further improvements for the upcoming 5.0 release. Topics include: - Explicitly list all new Fortran 2008 features that may result in unspecified behavior when used in OpenMP programs (only CONTIGUOUS attribute has specified behavior) - Add clause for controlling task affinity - Explicitly list all new C++17 features that may result in unspecified behavior when used in OpenMP programs. UPC/PGAS Liaison report (if any) B. Friesen DOE continues to show interest in UPC and related PGAS software for exascale computing. The DOE Exascale Computing Project (ECP) is funding the Pagoda Project at LBNL, which consists of GASNet-Ex, a communication layer, and UPC++, a C++-based interface. ECP hopes to integrate UPC++ into some of the applications which will run on the first generation of exascale computers in the US. OpenACC Liaison report (if any) G. Klimowicz OpenACC 2.6 was approved. New features include - Support for manual deep copy. Codes that heavily rely on derived types no longer have to be decomposed into their parts to be moved to the device. - Unified memory support, which simplifies memory management further. Many applications perform well without having to manually manage memory to the device. - Serial compute construct which allows the programmer to specify a sequence of serial code that can be moved to the device, even though it doesn't necessarily perform well on the device. This can alleviate the need to move data to and from the device, improving performance overall. - acc_get_property intrinsic that allows the programmer to identify things like how much memory is available on the device. - IF and IF_PRESENT clauses in HOST_DATA construct to allow applications that run on systems without GPUDirect to use the same code as those that do. Simplifies running on different configurations of hardware. The Fifth OpenACC User Group meeting will be held at GTC 2018 March 27 7:30 PM at the Four Points Sheraton in San Jose CA. https://www.eventbrite.com/e/fifth-openacc-user-group-meeting -gtc-2018-march-27-tickets-42608751924 They are seeking additions to the OpenACC runtime library for OpenACC 2.7, including use cases for the benefits of such proposals. Treasurer's report J. Steidel Ended last meeting with $2313.20 There is a $50 meeting fee Beginning membership report L. Menard 12 member organizations, 11 represented here. Total Membership at beginning of Meeting 215 : 13 Majority [1 over half] : 7 Quorum [1/3 of voting members, min 4 present] : 4 During this meeting, Steve Lionel attained voting rights Cray, Inc Bill Long Corbett Robert Corbett JPL Van Snyder Kernelyze Anton Shterenlikht Lawrence Berkeley National Brian Friesen Lionel Steve Lionel IBM Daniel Chen Intel Lorri Menard, Jon Steidel NASA Tom Clune NCAR Dan Nagle NVidia Gary Klimowicz Sandia National Labs Damian Rouson University of Oregon Steve Lionel, as his own entity, attains voting rights at this meeting Local arrangements D. Nagle Local host this meeting is Lorri Menard. Please let her know if you have complaints about the snack selection. Comments from members Bill noted that Makki's wife has passed. maybe at WG5 we should have some sort of statement WG5; most of you have seen N2147, the user survey. At this meeting we should start to come up with a list of proposed features for next standard. Steve's goal is to streamline the process. Looking for 2-3 medium/large features, small number of small features, and get the standard out there faster than 10 years. Proposal; Everyone look over N2147 and associated sources of feature requests. Two rose to the top; generics, exceptions. Come up with 5 other things you think are worth doing, and email Steve. we'll discuss the list tomorrow. Hopefully there will be a list of 20+/- items to bring to WG5 in June. Proposal: Use a J3 standing document to keep track of all the requests Two tasks; get a list to Steve, get our votes straight for DIS There are some technical issues that Bill discovered. If these are minor changes, 1 month letter ballot with wg5 If these are major changes, need to reset FDIS 1.2 Tutorials (if needed) Steve presented the new web site, made sure everyone could log in, in preparation for future meetings. 1.3 Subgroup organization D. Nagle JOR Dan (head) Gary, Steve 109, 115, 119 Data Lorri (head), Tom, Bob, Van, Damian 108 110 111 112 113 114 116 118 HPC Bill (head) Jon, Daniel, Brian, Anton 17-200, 106, 107, 117 Edit, interp: No interp or edit business at this meeting. Two tasks; normal subgroup reports. Invent your top 5 items 1.4 Subgroup meetings Adjourned at 9:30 1.5 Subgroup reports (4:30 pm) /JOR 18-109 "Use case for error handling ugliness" 18-115 "Exception handling in Fortran" Subgroup suggests that these be added to WG5 work 18-119 "Wish list for Fortran after 2015" This will be a good addition to archive, but not moved forward to WG5. /Data 18-108 "Use case for generic programming" 18-112 "Generic Programming" 18-116 "Templates" Subgroup suggests that these all relate to generic programming, and should be added to WG5 work. 18-110r1 "Use case for generic programming" will be addressed further later 18-118 "Improved memory control" Subgroup suggests this not be moved forward. /HPC 17-200 "Allow arrays to have coarray components" 18-117 "Put with notify" Still working on these papers 18-106 "Constants and intrinsic functions" 18-107R1 "Dummy arguments of assumed type and size" 18-121 "Typo in A.2 para1, 4th bullet" These 3 papers contain DIS comments and are for vote on Thursday Adjourned at 4:45 2. Tuesday, February 13, 2018 8:00 am -------------------------------------- 2.1 F2015 Plenary (13-010) Subgroup Heads Steve will have a document for PM plenary. Split by subgroup, and have subgroups look over features and brainstorm possible ways of developing features, look at past papers. /JOR continue 18-109 "Use case for error handling ugliness" and 18-115 "Exception handling in Fortran" Subgroup recommends pursuing these. Concept is a good concept, so let's step forward. /DATA nothing new to add /HPC Continue looking at two not done with. Reminder to group to please look at the DIS comments Recess to subgroup at 8:15 2.2 Tutorials (if needed) 2.3 Subgroup meetings 2.4 Subgroup reports (4:50 pm) 18-122 is a report of the "5 top things". Everyone read it, in the morning the subheads will break it out to the different groups /JOR 18-109, 18-115 For review and discussion tomorrow /DATA 18-113r1, 18-114r1, 18-123 w/110r1 For review and discussion tomorrow /HPC 18-121r1 for DIS comment on Thursday 18-117r1 think it's a viable feature 17-200r1 has an additional discussion section. Possibly feasible Remind people to read 18-106, 18-107r1 as DIS papers Recessed at 5:15 until tomorrow 3. Wednesday, February 14, 2018 8:00 am ---------------------------------------- 3.1 F2015 Plenary (13-010) Subgroup Heads Note: Straw Votes are marked with SV:, and the results are listed as YES / NO / (no opinion) /JOR: 18-109 "Use case for error handling ugliness" and 18-115 "Exception handling in Fortran" After a brief discussion, the committee agrees with goals of these papers, but much concern about implementation. JOR will recommend to WG5. /DATA: 18-113r1 "New types, not type aliases, from old types" SV: Do we continue with this? 8/1/4 18-114r1 "Enumeration types" SV: Do we continue with this? 8/1/4 18-123 w/18-110r1 "Distilled issues for container use cases" Containers would not be the intrinsic thing, the intrinsic thing would be a means to develop containers. Committee to come up with enabling technologies. /HPC: 18-117r1 "Put with notify" will continue 17-200r1 "Allow arrays with coarray components" will continue Recessed to subgroup 8:45 3.2 Tutorials (if needed) 3.3 Subgroup meetings 3.4 Subgroup reports (4:30 pm) /JoR: Subgroup suggests these features from 18-122r1 are low priority: "An ability to declare a reduction variable on DO CONCURRENT. " "+= and *= syntax" Subgroup also suggests that the following features from 18-122r1 not go forward: "A SWAP_ALLOCS procedure", "Strengthening existing intrinsics, i.e. avoiding special processing of corner cases" and "Standardizing preprocessor behavior" For discussion tomorrow: 18-124 "Increase maximum line length" 18-125 "Asynchronous subroutine execution" 18-126 "A0 format data edit descriptor" 18-127 "Additional string intrinsics" 18-120r2 "Control of leading zero in F and E format" /DATA For discussion tomorrow: 18-128 "Associating REAL and COMPLEX entities" 18-130 "Extending usability of deferred-length strings" 18-132 "Use cases for unsigned integers" 18-133 "RANGE attribute and statement" 18-134 "Type- or object-bound function invocation on, or subobject" 18-135 "Use cases for unallocated list item in READ statement" 18-136r1 "Use cases for default value for optional argument" /HPC For discussion tomorrow: 18-131 "HPC subgroup feature recommendations" Recessed until tomorrow morning 4:55 4. Thursday, February 15, 2018 8:00 am --------------------------------------- 4.1 F2015 Plenary (13-010) Subgroup Heads Answer the question; Should we go forward with this? straw votes: For forward - Never look at it again - don't care /JOR 18-124 "Increase maximum line length" SV: 10 - 0 - 3 18-125 "Asynchronous subroutine execution" Discussion items: Seems like a lot of potential issues with race conditions on arguments in the concurrently executing code. EVENT WAIT has segment boundary side effects - waiting for otherwise unrelated memory transfer completions. Lots of Data edits would be needed. Can OpenMP tasks work here? Also like Ada tasks. SV: 8 - 0 - 5 18-126 "A0 format data edit descriptor" Paper had two other straw votes, listed here: Should G0 change if A0 added? Yes:1 - No:6 - Undecided:6 Should A0 include Adjustl? Y:1 - N:5 - U:7 Should we go forward with A0? SV: 7 - 0 - 6 18-127 "Additional string intrinsics" Discussion items:How is sprintf different from an internal file? Seems like a list of intrinsics that would not be new. String handling not a major area for Fortran usage. New intrinsics in paper have potential name conflicts with existing user names SV: 7 - 1 - 5 18-120r2 "Control of leading zero in F and E format" Discussion item: Gives a way for a user to remove a processor dependency. SV: 9 - 0 - 4 /DATA 18-128 - "Associating REAL and COMPLEX entities" Discussion points: Violates tenet that pointers can't point to different types. F77 codes in paper were illegal, even if in common practice. Sent back to subgroup to find solution that doesn't violate basic Fortran rules. No further action this meeting. 18-130 - "Extending usability of deferred-length strings" This was broken up into three subcategories. For ERRMSG, IOMSG discussion items: Conceptually attractive, but likely to result in a lot of copying. May be too much work for vendors. SV: (ERRMSG/IOMSG only) 10-2-1 For intrinsics that return strings: SV: 7 - 0 - 6 For write to an internal file: Definitely may result in performance issues with much copying between buffers. SV: 7 - 0 - 6 18-132 "Use cases for unsigned integers" Discussion points: lack of unsigned integers is considered an advantage in some applications. Interoperability can use signed integers without problems now. Adding a new type will affect entire underlying typing system; use case better addressed by BITS. Questions about arithmetic semantics. SV: 1 - 5 - 7 18-133 "RANGE attribute and statement" Not to be brought forward 18-134 "Type- or object-bound function invocation on, subobject" Discussion: This means having a part name in a designator being a function reference. Suggested that parsing would not be straightforward. Obvious workaround in the paper SV: 3 - 0 - 10 (Damian Rouson had to leave, changing the total to 12) 18-135 "Use cases for unallocated list item in READ statement" This was broken out from allocatables in ERRMSG, IOMSG. Discussion items: Definite performance issue, as it would require double-reading. Appreciate the goal, but seems unrealistic. List directed could be a problem. Format reversion would be a problem. Simple would be valuable, but complicated could be very complicated SV: 0 - 8 - 4 18-136r1 "Use cases for default value for optional argument" Discussion items: Contrary to providing SAVE attribute. Easy enough workaround in code at top of routine. Possible problem passing argument to another routine that is expecting an optional - would the default be sent or the original, non-present? SV: 6 - 4 - 2 18-137 "fixing broken paragraphs" New for US TAG, with editorial changes. /HPC 18-131 "HPC Subgroup feature recommendations" There are many line items in this paper; individual items have been called out below, with its associated straw vote. Reminder: SV: Go Forward / Do not take forward / Undecided Medium size features: Put with notify (paper 18-117r1) SV: 6/0/6 Binary compatibility of C descriptors so that a single C library could work with multiple Fortran implementations. (Discussion: there are other solutions possible) SV: 11/0/1 Small size features: CFI function to return text of error messages SV: 10/0/2 Any information that can help avoid OpenMP false sharing, e.g. intrinsics to inquire about cache sizes, and other hardware features at run time. SV: 1/10/1 Processor dependent information on sizes of vector instruction, that helps arrange data in an optimal fashion for SIMD processing. SV: 1/8/3 PROTECTED structure components SV: 8/1/3 Neither recommended nor opposed: Providing methods for easily accepting NUL-terminated strings in calls to Fortran from C. SV: 7/0/5 Allow more than one procedure interface to share the same binding name (currently disallowed by 19.2p1) SV: 0/7/5 Allow arrays and allocatables with coarray components (paper 17-200r1) SV: 4/0/7 Bit strings. There are two options. Length is LEN or a KIND parameter. Debated before, chose KIND. (discussion: could be used to resolve unsigned integer) SV: 8/0/4 Features that are not recommended: An INTENT keyword that means the same as not specifying INTENT. SV: 7/2/3 Proposal for requesting different memory types for different data objects. (paper 18-118) SV: 0/9/3 Remove requirement that LOGICAL requires one numeric storage unit. After discussion, proposal was changed to augment ISO_FORTRAN_ENV with LOGICAL kind types LOG8, LOG16, LOG32, LOG64. Also, while editing, add REAL16 as well (where the numbers indicate number-of-bits) SV: 10/0/2 PROTECTED types: Discussion: EVENT and LOCK and NOTIFY should be recharacterized as protected types. Maybe a different term? SV: 2/0/10 PROTECTED pointers, similar to a pointer-to-const in C/C++: SV: 5/0/7 4.2 Tutorials (if needed) 4.3 Subgroup meetings 4.4 US TAG (4:15 pm) D. Nagle 4.4.1 Five-year National Maintenance review of INCITS/ISO/IEC 1539-1:2010[2013]: Information technology - Programming languages - Fortran - Part 1: Base language The options for national maintenance are: - Reaffirmation - Withdrawal - Stabilization (does not apply to technical reports) Motion to reaffirm the F2008 standard by Nagle/Lionel. Roll call vote below Cray, Inc Bill Long y Corbett Robert Corbett y JPL Van Snyder y Kernelyze Anton Shterenlikht y Lawrence Berkeley National Brian Friesen y Lionel Steve Lionel y IBM Daniel Chen y Intel Lorri Menard y NASA Tom Clune y NCAR Dan Nagle y NVidia Gary Klimowicz y Sandia National Labs University of Oregon 4.4.2 - US position and vote for 1SO/IEC DIS 1539-1 Motion to pass all 4 papers as public comments Corbett/Long UC 18-106, 18-107r1 18-121r1 18-137 (Editor's note: the Word document contains a full table of each of the edits in these 4 papers) Long/Steidel Motion to approve DIS with comments. Roll call vote: Cray, Inc Bill Long y Corbett Robert Corbett y JPL Van Snyder y Kernelyze Anton Shterenlikht y Lawrence Berkeley National Brian Friesen y Lionel Steve Lionel y IBM Daniel Chen y Intel Lorri Menard y NASA Tom Clune y NCAR Dan Nagle y NVidia Gary Klimowicz y Sandia National Labs University of Oregon Motion by Snyder/Long to adjourn US Tag; UC 4:27 4.5 Subgroup reports (4:30 pm) /JoR For review and discussion tomorrow: 18-139, 18-140, 18-143, 18-152 /DATA For review and discussion tomorrow: 18-141, 18-142, 18-144, 18-149, 18-150, 18-151, 18-153 /HPC For review and discussion tomorrow: 18-145, 18-146, 18-147, 18-148, 18-150 Recess until tomorrow AM at 4:43PM. 5. Friday, February 16, 2018 8:00 am -------------------------------------- 5.1 F2015 Plenary (13-010) Subgroup Heads Two more members have left: Anton Shterenlikht, Van Snyder /JoR 18-139 "Degree trigonometric functions" Discussion: Remove hyperbolic, some massaging, but agree with the thrust SV: 9 - 0 - 1 18-140 "Pointers should be disassociated by default" SV: 6 - 3 - 1 18-143 "Add reductions to DO CONCURRENT" SV: 5 - 0 - 5 18-152 "short circuiting logical operators" Discussed precedence; group decision to keep it as lowest SV: 8 - 0 - 2 /DATA 18-141 "Specification variables" idea is good, will be needed for templates We should work on this as part of generics, where the feature would be useful but not necessarily in this format. SV: 0 - 7 - 3 18-142 "Data recommendations on Containers" Note; the recommendation is to NOT do containers SV: 10 -0 - 0 "Containers" as a feature will not be brought forward 18-144 "POINTER dummy arguments, INTENT, and target modification" Discussion; typo in paper "target" should be "pointer" in P2. Use a term other than INTENT SV: 7 - 0 - 3 18-149 "Protection" (protected components was separated into 18-146; argument pointer targets is 18-144) This discusses PROTECTED types only. SV: 0 - 6 - 4 18-151 "VIRTUOUS or Super-pure attribute for functions" Discussion: No contact with data defined outside the function "four walls". Module version cannot access module variables. Intention is that routine can be run on a co-processor without access to host memory. Compiler/code-gen should be able to detect this even without attribute SV: 5 - 0 - 5 18-153 "Views-lite (an example of how views could do real/complex)" SV: 0 - 4 - 6 18-114r1 "Enumeration types" Discussion: Some value but expensive in compiler because type system affected. No operators or semantics. If limited to a bind(c) feature, would lessen its value SV: 6 - 0 - 4 There are four line-items from 18-122r1 that were not addressed. Constructors - Tom would like to consider use cases, perhaps submit a paper later. Panoramic views - To pursue it, write the paper for next meeting Declarations in implicit - No paper now; maybe later Units - WG5 has turned it down, not worth submitting another paper /HPC 18-145 "CFI function to return error texts" SV: 9 - 0 - 1 18-146 "Protected components: SV: 7 - 0 - 3 18-147 "Intrinsics to convert C string and Fortran string" SV: 7 - 0 - 3 18-148 "Logical kinds, another real kind" SV: 10 - 0 - 0 18-150 "Intent to specify no intent" SV: 7 - 0 - 3 At the end of the meeting, we decided that Steve would gather the results of the various straw votes taken, and will submit a summary report. The items the committee are confident should be brought forward are generic programming/templates, and exception handling. One should note that a simple recommendation from this committee does not guarantee that a feature will be accepted by WG5. 5.2 Closing business 5.3 Review of action items (if any) Steve has paper to write, others have papers to write 5.4 Future meetings D. Nagle Signed contracts for 2019, GSA rate, at this hotel June 11-15, 2018 Oct 15-19, 2018 Nagle Feb 11-15, 2019 Aug 5-9, 2019 Oct 14-18, 2019 5.5 Treasurer's report J. Steidel 12 Feb 2018 Opening balance $ 2313.20 12 Feb 2018 Meeting fees 650.00 ------- Subtotal $ 2963.20 16 Feb 2018 Fairfield Inn -280.84 ------- 16 Feb 2018 Closing balance $ 2682.36 Motion to not collect meeting fee at June meeting Bob/Tom UC 5.6 Closing membership report L. Menard 13 member organizations, 12 represented here. Total Membership at end of Meeting 215 : 13 5.7 Comments from members Adjournment 10:30