Presentation is loading. Please wait.

Presentation is loading. Please wait.

INFSO-RI-031688 Enabling Grids for E-sciencE www.eu-egee.org Pan Compiler C. Loomis (LAL-Orsay) Quattor Workshop (Madrid) 29-30 October 2007.

Similar presentations


Presentation on theme: "INFSO-RI-031688 Enabling Grids for E-sciencE www.eu-egee.org Pan Compiler C. Loomis (LAL-Orsay) Quattor Workshop (Madrid) 29-30 October 2007."— Presentation transcript:

1 INFSO-RI-031688 Enabling Grids for E-sciencE www.eu-egee.org Pan Compiler C. Loomis (LAL-Orsay) Quattor Workshop (Madrid) 29-30 October 2007

2 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 2 Contents Current Status Planned Language Changes Performance Proposed Feature Changes Roadmap Discussion

3 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 3 Links Pan Documentation –Language (https://trac.lal.in2p3.fr/LCGQWG/wiki/Doc/panc)https://trac.lal.in2p3.fr/LCGQWG/wiki/Doc/panc –Compiler (https://trac.lal.in2p3.fr/LCGQWG/wiki/Doc/compiler)https://trac.lal.in2p3.fr/LCGQWG/wiki/Doc/compiler Packages & Installation –https://trac.lal.in2p3.fr/LCGQWG/wiki/Download/panchttps://trac.lal.in2p3.fr/LCGQWG/wiki/Download/panc –QWG template distribution –Quattor distribution –ETICS repository Development –Roadmap (https://trac.lal.in2p3.fr/LCGQWG/roadmap)https://trac.lal.in2p3.fr/LCGQWG/roadmap –Bugs (https://trac.lal.in2p3.fr/LCGQWG/report)https://trac.lal.in2p3.fr/LCGQWG/report

4 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 4 Current Status Version 6 (deprecated) –Old, c implementation of compiler –Frozen; no bug fixes or feature enhancements –Used by default for CDB Version 7 (production, current = 7.2.6) –First, production java implementation of compiler –Bug fixes being applied; (very) limited feature enhancements –Almost 100% backward-compatible with Version 6 –Used by default for SCDB Version 8 (development, trunk) –Incompatible language-level changes compared to Version 6 –Expect to have production version ready before Christmas

5 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 5 Performance Slow compilation of (CERN-like) profiles is the issue that has kept the java-implementation from being universally adopted. To investigate: –Added rudimentary profiling to v7.2 branch. –Developed set of performance tests. Test configuration: –Pan compilers: v6.0.4, v7.2.5, and v7.2.6 –Machine: Xeon (64bit), 2.3 GHz, 8 (2x4) cores, 16 GB RAM –OS: SL4, 2.6.9 kernel –Java: JDK 1.6.0-01, -Xmx8192M

6 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 6 Generic Performance Tests v6.0.4 (c)v7.2.5 (java)v7.2.6 (java) mono multimonomulti assign128802826392325683978 cond-assign130021827156614062279 include1287175812857441726 cond-include130041323165513692210 delete131372951168320131537 f-noargs131861993176116892515 f-1arg135192804243323652927 var-self-ref2205838182730727172034 Time in milliseconds (ms) to complete tests. Smaller number is faster compilation.

7 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 7 Performance for CERN Profiles v6.0.4 (c)v7.2.5 (java)v7.2.6 (java) mono multimonomulti cern-mono (100)112901736903323383677530 cern-1115091273270411702022 cern-8810232571701289664373110 cern-9206157410575191743775646022240 Time in milliseconds (ms) to complete tests. Smaller number is faster compilation. Memory use around 2 GB for 920 profile test with java version.

8 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 8 Performance Time in milliseconds (ms) to complete tests. Smaller number is faster compilation.

9 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 9 Planned Changes enhancementsdeprecatedunsupported v7 foreach stmt. ‘bind’ statement bit & misc. functions optional gzipped profiles rudimentary logging ‘define’ keyword ‘description’ keyword ‘descro’ keyword ‘delete’ stmt. v8 ‘format’ function primitive type conflict err. i18n support perf. and include logging auto. var. for tpl. name ‘final’ for structure tpls. simple DML optim. ‘copy-on-write’ optim. lowercase auto. vars. ‘type’ synonym for ‘bind’ ‘define’ keyword ‘description’ keyword ‘descro’ keyword ‘delete’ stmt. v9 include my/tpl;lowercase auto. vars. ‘type’ synonym for ‘bind’ v10 include my/tpl; v11 include DML w/o braces Purpose of language changes is to simplify the pan grammar and speed-up the compilation; other changes, to enhance functionality.

10 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 10 https://trac.lal.in2p3.fr/LCGQWG/ticket/74 Cast Operator I have thought of introducing a cast operator into pan. However, it would be more of a replacement for the to_string(), etc. functions. Something like: variable x = (string) 3; However this does indeed cause several complications. The easiest to resolve is just the changes to the grammar. Although these changes would be extensive, I think that they could be done. A more serious complication is a semantic one. What would the following mean? variable x = (mytype) list('a','b'); Would casting be allowed for user-defined types, and if so, does this imply validation at the point of the cast? This would be useful to find errors as early as possible in the build process. In the end though, I think the complications outweigh any benefit at this point. We might bring this back for a release beyond v10.

11 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 11 https://trac.lal.in2p3.fr/LCGQWG/ticket/75 Forced Assignment What you're actually asking for though is not really a cast operator but something more like a forced assignment. Something like: variable x = 47; variable x := list(foo); that will do the equivalent of: variable x = 47; variable x = undef; variable x = list(foo); and hence avoids the check on the primitive types when an assignment is made. I must say I have mixed feelings about this because I think this check more often than not catches real mistakes. But as you say, it would be useful when dealing with the QWG distribution.

12 Pan Compiler – C. Loomis – 29-30 October 2007 Enabling Grids for E-sciencE INFSO-RI-031688 12 Roadmap Discussion Compiler features –Are the planned features for each release OK? –Are there new features that aren’t in plan? Adopting new panc releases –Who will verify that panc v7+ works with CDB? –On what timescale can we drop panc v6 support? –What time interval between major panc releases?


Download ppt "INFSO-RI-031688 Enabling Grids for E-sciencE www.eu-egee.org Pan Compiler C. Loomis (LAL-Orsay) Quattor Workshop (Madrid) 29-30 October 2007."

Similar presentations


Ads by Google