<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Matt,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Matthew Knepley [mailto:knepley@gmail.com] <br><b>Sent:</b> Thursday, November 21, 2013 1:46 PM<br><b>To:</b> Bartlett, Roscoe A.<br><b>Cc:</b> Jed Brown; Barry Smith; petsc-trilinos-discussion@lists.mcs.anl.gov<br><b>Subject:</b> Re: [Petsc-trilinos-discussion] Scope and requirements<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><div><p class=MsoNormal>On Thu, Nov 21, 2013 at 12:39 PM, Bartlett, Roscoe A. <<a href="mailto:bartlettra@ornl.gov" target="_blank">bartlettra@ornl.gov</a>> wrote:<o:p></o:p></p><div><p class=MsoNormal style='margin-bottom:12.0pt'>> > Therefore, I would say that before there is any talk of more detailed<br>> > interfaces or interoperability between Trilinos and PETSc that we<br>> > first solve the basic problems of version compatibility,<br>><br>> PETSc and Trilinos have a different approach to interface evolution. We<br>> tend to make minor modifications each year while you tend to create<br>> entirely new interfaces and coax applications over to the new ones. The<br>> need to upgrade inflicts some pain on the users, but our users have<br>> always ultimately buckled down and done it.<o:p></o:p></p></div><p class=MsoNormal>[Bartlett, Roscoe A.]<br><br>But the compatibility between Trilinos and PETSc, say in the PETSc/ML case has nothing to do with the "user" (i.e. downstream project using Trilinos and PETSc). Can they just grab arbitrary versions of PETSC and Trilinos and configure and build them and have the ML support under PETSc work? If not arbitrary versions (which is unreasonable) what about ranges of versions? Think about this same issue in a large ecosystem of libraries and applications in a large multi-physics coupled code (CASL VERA is a small example of this we have already had to face). For example, if every major release of Library A breaks backward compatibility with prior versions and you have to couple together three APPs that all use three different versions of Library A in a statically linked executable, how can that work? Do you just tell all the APP development teams to all upgrade (or downgrade) to the use same version of Library A that has different interfaces and behavior between the different v<br> ersions? Is that practical? What if the downstream project development team does even have access to the developers of say APP1 that currently only works against an older version of Library A? Does the downstream project development team take it upon themselves to upgrade the version of Library A (with new interfaces and behavior) in APP1 that they did not even develop and don't really understand all the test cases for<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We support the latest version of a package. Nothing else. Any other strategy is just not feasible.<o:p></o:p></p></div><div><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><i><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>[Bartlett, Roscoe A.] Supporting the latest version is *not* the issue. </span></i></b><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>That does not answer the basic question. How can we expect projects to couple two, three, or more APPs that all use different incompatible versions of the same library? What is the answer? If a library maintains a longer window of backward compatibility for more mature features, you only have to support the latest version and yet still allow all different kinds of coupling and integration models. Please keep an open mind and read the balanced proposal for “Regulated Backward Compatibility” in the below reference. I don’t see any other way to achieve broader usage and acceptance of our software in a larger ecosystem of software and projects. If you see another way, I would like to know what it is.<o:p></o:p></span></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal>However, if Library A maintains sufficient backward compatibility between the ranges of versions of Library A currently in use by all three APP codes, then you just need to use the latest version of Library A and that is it. Easy as pie. This example, by the way, is shown in slides 36 and 37 in <a href="http://web.ornl.gov/~8vt/ORNLCSMDTribitsLifecycleModelPresentation.pdf" target="_blank">http://web.ornl.gov/~8vt/ORNLCSMDTribitsLifecycleModelPresentation.pdf</a>. For those interested in the deeper arguments, I would recommend the section on "Regulated Backward Compatibility" in:<br><br> <a href="http://web.ornl.gov/~8vt/TribitsLifecycleModel_v1.0.pdf" target="_blank">http://web.ornl.gov/~8vt/TribitsLifecycleModel_v1.0.pdf</a><br><br>which also describes the general three APP scenario mentioned above.<br><br>Cheers,<br><br>-Ross<o:p></o:p></p></blockquote></div><p class=MsoNormal> <o:p></o:p></p></div></div></div></div></body></html>