Parametric integer linear programming solver

Hello,
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface, or how we could use from PPL an existing solver, like http://piplib.org
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
Thank you, Sebastian Pop -- AMD - GNU Tools

Sebastian Pop wrote:
Hello,
Hi Sebastian!
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface,
Not that I know.
or how we could use from PPL an existing solver, like http://piplib.org
The file piplib-1.3.6/doc/pip.pdf says that PIPLIB is under GPLv2. As fas as I know, this implies PIPLIB cannot be combined with the current version of the PPL, which is GPLv3+, into something distributable. However, if the PIPLIB authors will release under a GPLv3-compatible license, we are willing to help building an interface.
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
I see. We had some plans to establish a collaboration with the objective to incorporate this functionality into the PPL. I have just contacted the people involved: I will let you know. Cheers,
Roberto

PIP/PipLib is now under LGPL 2.1+. The sources in the repository already reflect this change, contrary to the "latest" public version of the website. However one can extract the 1.4.0 version from the Git repository which is under LGPL.
Cedric
On Wed, May 13, 2009 at 5:10 PM, Roberto Bagnara bagnara@cs.unipr.it wrote:
Sebastian Pop wrote:
Hello,
Hi Sebastian!
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface,
Not that I know.
or how we could use from PPL an existing solver, like http://piplib.org
The file piplib-1.3.6/doc/pip.pdf says that PIPLIB is under GPLv2. As fas as I know, this implies PIPLIB cannot be combined with the current version of the PPL, which is GPLv3+, into something distributable. However, if the PIPLIB authors will release under a GPLv3-compatible license, we are willing to help building an interface.
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
I see. We had some plans to establish a collaboration with the objective to incorporate this functionality into the PPL. I have just contacted the people involved: I will let you know. Cheers,
Roberto
-- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it

On Wed, May 13, 2009 at 16:42, Cédric Bastoul cedric.bastoul@inria.fr wrote:
PIP/PipLib is now under LGPL 2.1+. The sources in the repository already reflect this change, contrary to the "latest" public version of the website. However one can extract the 1.4.0 version from the Git repository which is under LGPL.
These are excellent news!
On Wed, May 13, 2009 at 5:10 PM, Roberto Bagnara bagnara@cs.unipr.it wrote:
Sebastian Pop wrote:
Hello,
Hi Sebastian!
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface,
Not that I know.
or how we could use from PPL an existing solver, like http://piplib.org
The file piplib-1.3.6/doc/pip.pdf says that PIPLIB is under GPLv2. As fas as I know, this implies PIPLIB cannot be combined with the current version of the PPL, which is GPLv3+, into something distributable. However, if the PIPLIB authors will release under a GPLv3-compatible license, we are willing to help building an interface.
Would it be possible to ship the PIPlib code with PPL to avoid having one more library dependence in GCC?
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
I see. We had some plans to establish a collaboration with the objective to incorporate this functionality into the PPL. I have just contacted the people involved: I will let you know. Cheers,
Roberto
-- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it

Would it be possible to ship the PIPlib code with PPL to avoid having one more library dependence in GCC?
Mmm, PIP/PipLib is in C and the code writing is probably far from the PPL quality standards. I understand your point but putting PIP in the PPL (I mean quickly) would be something very artificial... Someday, someone must be courageous enough to write a new tool based on the PIP algorithm from scratch to allow easy integration in other tools (this will probably happen via Denis Barthou from Versailles). I dreamt a lot about this. However I highly discourage any modification of PIP itself because this is a complex tool, 21 year old, with no bug in the core since _ages_ while highly used. I believe it must be used to test its "son" (even if it is a fork) and not to evolve anymore, except in surface.
Just my 2 cents, I'm NOT the owner of PIP. Paul Feautrier is.
Cédric

Sebastian Pop wrote:
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface, or how we could use from PPL an existing solver, like http://piplib.org
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
Hi there.
I am very happy to announce that, mainly thanks to the excellent work of François Galea, the PPL now incorporates a parametric integer linear programming solver. We are currently adding a C interface to it, and we would like the Graphite people to help us testing it. In the next few days we will submit a tentative documentation for the C interface, so that you can provide us with feedback. Once the interfaces are agreed upon, we will prepare a snapshot for you to play with (for your convenience only, as the PPL is in constant release mode: you can find all the code in the `pip' branch of the central PPL Git repository). Cheers,
Roberto

On Wed, Oct 7, 2009 at 12:30, Roberto Bagnara bagnara@cs.unipr.it wrote:
Sebastian Pop wrote:
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface, or how we could use from PPL an existing solver, like http://piplib.org
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
Hi there.
I am very happy to announce that, mainly thanks to the excellent work of François Galea, the PPL now incorporates a parametric integer linear programming solver. We are currently adding a C interface to it, and we would like the Graphite people to help us testing it. In the next few days we will submit a tentative documentation for the C interface, so that you can provide us with feedback. Once the interfaces are agreed upon, we will prepare a snapshot for you to play with (for your convenience only, as the PPL is in constant release mode: you can find all the code in the `pip' branch of the central PPL Git repository).
Awesome! Thanks to everyone who contributed to make this happen.
I will work on a prototype that will use this solver in the data dependence analysis of Graphite, and will let you know how it works.
Sebastian

Roberto Bagnara wrote:
Sebastian Pop wrote:
I would like to know whether there exists a parametric integer linear programming solver that can be called from the PPL interface, or how we could use from PPL an existing solver, like http://piplib.org
We would need such a tool to improve the precision of the data dependence analysis of Graphite by computing the reaching definitions of array accesses.
Hi there.
I am very happy to announce that, mainly thanks to the excellent work of François Galea, the PPL now incorporates a parametric integer linear programming solver. We are currently adding a C interface to it, and we would like the Graphite people to help us testing it. In the next few days we will submit a tentative documentation for the C interface, so that you can provide us with feedback. Once the interfaces are agreed upon, we will prepare a snapshot for you to play with (for your convenience only, as the PPL is in constant release mode: you can find all the code in the `pip' branch of the central PPL Git repository). Cheers,
This is great news Roberto! Thanks for your efforts and interest. I'm sure there will be publishable work about this. It was an excellent match.
Konrad Trifunovic is currently working on other parts of Graphite and optimization-related research issues, but we will do whatever we can to help Sebastian on the first array data-flow analysis implementation in Graphite.
Albert

Albert Cohen wrote:
Konrad Trifunovic is currently working on other parts of Graphite and optimization-related research issues, but we will do whatever we can to help Sebastian on the first array data-flow analysis implementation in Graphite.
Dear All,
we have just uploaded to
http://www.cs.unipr.it/ppl/Download/ftp/snapshots/
a beta-test distribution containing the new parametric integer programming solver. Documentation is included in the package. It is quite important that you check the documentation and start testing as soon as possible. The best way to report bugs and to suggest improvements/modifications is via the issue tracking system available at https://www.cs.unipr.it/mantis/ If for some reason you prefer not to use that, then send an email to ppl-devel@cs.unipr.it. We are also interested in collecting testcases, preferably tough ones that will help us in optimizing the solver. All the best,
Roberto

On Thu, Oct 22, 2009 at 14:41, Roberto Bagnara bagnara@cs.unipr.it wrote:
we have just uploaded to
http://www.cs.unipr.it/ppl/Download/ftp/snapshots/
a beta-test distribution containing the new parametric integer programming solver. Documentation is included in the package. It is quite important that you check the documentation and start testing as soon as possible. The best way to report bugs and to suggest improvements/modifications is via the issue tracking system available at https://www.cs.unipr.it/mantis/ If for some reason you prefer not to use that, then send an email to ppl-devel@cs.unipr.it. We are also interested in collecting testcases, preferably tough ones that will help us in optimizing the solver.
I am trying the snapshots right now.
Thanks again, Sebastian

Sebastian Pop wrote:
On Thu, Oct 22, 2009 at 14:41, Roberto Bagnara bagnara@cs.unipr.it wrote:
we have just uploaded to
http://www.cs.unipr.it/ppl/Download/ftp/snapshots/
a beta-test distribution containing the new parametric integer programming solver. Documentation is included in the package. It is quite important that you check the documentation and start testing as soon as possible. The best way to report bugs and to suggest improvements/modifications is via the issue tracking system available at https://www.cs.unipr.it/mantis/ If for some reason you prefer not to use that, then send an email to ppl-devel@cs.unipr.it. We are also interested in collecting testcases, preferably tough ones that will help us in optimizing the solver.
I am trying the snapshots right now.
Hi there,
just to let you know that a new beta-test distribution with many improvements is available at
http://www.cs.unipr.it/ppl/Download/ftp/snapshots/
Please test it as soon as possible and report any problem to the ppl-devel@cs.unipr.it mailing list. Cheers,
Roberto
participants (4)
-
Albert Cohen
-
Cédric Bastoul
-
Roberto Bagnara
-
Sebastian Pop