Re: HPC in scala ..
Hi Chad! Where are you at NRL? I'm also working there. I was dreaming of having a clojure users group there. -- myriam cej38 writes: > I am currently at the Naval Research Laboratory, Washington DC. > > Chad > > > > On Jan 18, 11:59 am, Konrad Hinsen wrote: >> On 18 Jan, 2011, at 17:37 , cej38 wrote: >> >> > I think the clojure community should be seeking the type of funding to >> > make it the goto language for HPC. As a community we definitely have >> > the brains to make it happen. >> >> The brains, yes, but not the academic infrastructure. Scala is based at >> EPFL, and the work on parallel programming is done in collaboration with >> Stanford. That makes all of a difference when applying for funding in the >> academic world, such as the ERC grant that the Scala guys got. >> >> Just out of curiosity: is there anyone else on this list who has an >> affiliation with an academic institution? Perhaps we could get together and >> see if we can apply for an interesting grant for some Clojure-related work. >> >> Konrad. >From the cat's little instruction handbook: Learn to appreciate fine books -- especially when somebody else is reading them. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan, 2011, at 17:37 , cej38 wrote: I think the clojure community should be seeking the type of funding to make it the goto language for HPC. As a community we definitely have the brains to make it happen. The brains, yes, but not the academic infrastructure. Scala is based at EPFL, and the work on parallel programming is done in collaboration with Stanford. That makes all of a difference when applying for funding in the academic world, such as the ERC grant that the Scala guys got. Just out of curiosity: is there anyone else on this list who has an affiliation with an academic institution? Perhaps we could get together and see if we can apply for an interesting grant for some Clojure-related work. Konrad. In theory I am affiliated with Carnegie-Mellon University. Tim Daly This is too much of a coincidence minutes after I hit enter to send this note I was informed that our project was cancelled and everyone in the project is being terminated. So, ummm, it appears that I will not have any CMU connection every so shortly. Sorry about that. Tim Daly -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
I am currently at the Naval Research Laboratory, Washington DC. Chad On Jan 18, 11:59 am, Konrad Hinsen wrote: > On 18 Jan, 2011, at 17:37 , cej38 wrote: > > > I think the clojure community should be seeking the type of funding to > > make it the goto language for HPC. As a community we definitely have > > the brains to make it happen. > > The brains, yes, but not the academic infrastructure. Scala is based at EPFL, > and the work on parallel programming is done in collaboration with Stanford. > That makes all of a difference when applying for funding in the academic > world, such as the ERC grant that the Scala guys got. > > Just out of curiosity: is there anyone else on this list who has an > affiliation with an academic institution? Perhaps we could get together and > see if we can apply for an interesting grant for some Clojure-related work. > > Konrad. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan, 2011, at 17:37 , cej38 wrote: I think the clojure community should be seeking the type of funding to make it the goto language for HPC. As a community we definitely have the brains to make it happen. The brains, yes, but not the academic infrastructure. Scala is based at EPFL, and the work on parallel programming is done in collaboration with Stanford. That makes all of a difference when applying for funding in the academic world, such as the ERC grant that the Scala guys got. Just out of curiosity: is there anyone else on this list who has an affiliation with an academic institution? Perhaps we could get together and see if we can apply for an interesting grant for some Clojure-related work. Konrad. In theory I am affiliated with Carnegie-Mellon University. Tim Daly -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan, 2011, at 15:34 , Tim Daly wrote: >> I suppose that for most Lispers, Clojure's namespaces are a sufficient >> answer. Just make a namespace for your DSL where you put all the stuff that >> is part of it. Sure, you can always get at the rest of Clojure by importing >> other namespaces and/or using qualified symbols. But you would do that only >> intentionally, not by accident. > > Well you could use scalac and dynamically load the class. > Or, since it is Java, just create a classloader and load anything. My understanding of the article is that the DSLs are compiled to something that may or may not be JVM bytecode (one example compiles to C++) and that the DSL code doesn't "know" that its compiler is written in Scala. A programmer who does know may resort to tricks such as you describe, but it is a lot straightforward than accessing clojure.core in Clojure. > Safety, in my interpretation, means not using anything but the > domain-specific language for portability. That won't stop people Personally I fully agree. I just wonder if everyone else does. > I do think that the idea of defining problems in terms of a DSL is > certainly an interesting design approach. It might be useful to have > some Clojure examples of such designs so we can ensure that > DSLs are easily created. One really useful example might be to > create Scala in macros :-) I'd go for Fortran ;-) Konrad. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan, 2011, at 17:37 , cej38 wrote: > I think the clojure community should be seeking the type of funding to > make it the goto language for HPC. As a community we definitely have > the brains to make it happen. The brains, yes, but not the academic infrastructure. Scala is based at EPFL, and the work on parallel programming is done in collaboration with Stanford. That makes all of a difference when applying for funding in the academic world, such as the ERC grant that the Scala guys got. Just out of curiosity: is there anyone else on this list who has an affiliation with an academic institution? Perhaps we could get together and see if we can apply for an interesting grant for some Clojure-related work. Konrad. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
I think the clojure community should be seeking the type of funding to make it the goto language for HPC. As a community we definitely have the brains to make it happen. While I am not enough of a computer scientist to be able to contribute to the development, I am willing to help write proposals for funding. Chad Junkermeier, Ph.D. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan 2011, at 07:37, Tim Daly wrote: I have just finished Language Virtualization for Heterogeneous Parallel Computing http://infoscience.epfl.ch/record/148814/files/paper.pdf Me too! Clojure clearly fulfills all of the goals of a virtualization language because it is a Lisp. Lisp systems are clearly capable of building a DSL that is fully expressive of all of the power of Lisp. By using the macro facility the DSL syntax can be matched to the problem domain. The authors do mention Lisp, saying that it satisfies most of their criteria except for safety, because a DSL implemented through Lisp macros always has access to all of Lisp, including the DSL's own implementation. I suppose that for most Lispers, Clojure's namespaces are a sufficient answer. Just make a namespace for your DSL where you put all the stuff that is part of it. Sure, you can always get at the rest of Clojure by importing other namespaces and/or using qualified symbols. But you would do that only intentionally, not by accident. Well you could use scalac and dynamically load the class. Or, since it is Java, just create a classloader and load anything. Even a strong type system can be overcome. Safety, in my interpretation, means not using anything but the domain-specific language for portability. That won't stop people from escaping to the VL but that makes their code non-portable. C, for example, "runs everywhere but compiles nowhere" due to the machine-specific hacking. People coming from statically-typed languages typically require more law enforcement and would probably not be happy with the namespace approach. More protection would require a DSL-specific reader that checks for namespace-qualified symbols and disallows arbitrary imports. But even that would probably be less work to implement than what it takes to make Scala "virtualizable". However, I do believe that Scala has a better chance of being accepted as a DSL hosting language for "mass-market" parallel computing, because it has familiar syntax. Sigh. I believe you are right. So I think that Clojure is an excellent virtualization language for DSLs. I certainly agree with that. Konrad. The real question is, given that Europe is willing to fund the DSL approach to "popular computing", what can we learn from this research trend that will influence Clojure? I do think that the idea of defining problems in terms of a DSL is certainly an interesting design approach. It might be useful to have some Clojure examples of such designs so we can ensure that DSLs are easily created. One really useful example might be to create Scala in macros :-) Tim Daly -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
On 18 Jan 2011, at 07:37, Tim Daly wrote: I have just finished Language Virtualization for Heterogeneous Parallel Computing http://infoscience.epfl.ch/record/148814/files/paper.pdf Me too! Clojure clearly fulfills all of the goals of a virtualization language because it is a Lisp. Lisp systems are clearly capable of building a DSL that is fully expressive of all of the power of Lisp. By using the macro facility the DSL syntax can be matched to the problem domain. The authors do mention Lisp, saying that it satisfies most of their criteria except for safety, because a DSL implemented through Lisp macros always has access to all of Lisp, including the DSL's own implementation. I suppose that for most Lispers, Clojure's namespaces are a sufficient answer. Just make a namespace for your DSL where you put all the stuff that is part of it. Sure, you can always get at the rest of Clojure by importing other namespaces and/or using qualified symbols. But you would do that only intentionally, not by accident. People coming from statically-typed languages typically require more law enforcement and would probably not be happy with the namespace approach. More protection would require a DSL-specific reader that checks for namespace-qualified symbols and disallows arbitrary imports. But even that would probably be less work to implement than what it takes to make Scala "virtualizable". However, I do believe that Scala has a better chance of being accepted as a DSL hosting language for "mass-market" parallel computing, because it has familiar syntax. So I think that Clojure is an excellent virtualization language for DSLs. I certainly agree with that. Konrad. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
Hello Everybody, not directly related to clojure .. but it is interesting to know that scala people got a huge funding to further the state of the art in HPC... http://www.scala-lang.org/node/8579 Sunil. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en I have just finished Language Virtualization for Heterogeneous Parallel Computing http://infoscience.epfl.ch/record/148814/files/paper.pdf The fundamental idea is defining a DSL (domain specific language) to express some ideas. The DSL lives in a layer above the implementation language but is embedded into the implementation language. That is, the DSL does not have a separate compiler. DSLs define languages that can support this as "virtualization languages" (VL). The VL needs to provide four properties: 1) expressiveness -- everything should be expressible in the VL 2) performance -- the DSL should perform at VL speeds 3) safety -- the DSL should not reach into the underlying VL 4) effort -- the DSL should be easy to implement. DSLs should be easy to combine because they both rest on the same VL. Thus, a developer can provide capabilities of multiple DSLs in the same image. Clojure clearly fulfills all of the goals of a virtualization language because it is a Lisp. Lisp systems are clearly capable of building a DSL that is fully expressive of all of the power of Lisp. By using the macro facility the DSL syntax can be matched to the problem domain. Macros allow the Clojure code to dynamically generate high performance code that takes advantage of domain specific optimizations. The macro language can be defined independent of the underlying lisp so that there is no need to "reach below the VL" into Clojure. This gives the DSL portability. Macros are minimal effort. It is easy to develop macros and easy to incrementally develop and enhance them to support any DSL features. So I think that Clojure is an excellent virtualization language for DSLs. While I do not know of any large Clojure applications yet, I know that Axiom can be viewed as a mathematical domain specific language in Common Lisp with facilities similar to Mathematica. ACL2 is a logical domain specific language in Common Lisp with the ability to prove lisp programs. Because they have a common VL they can be combined into the same lisp image and ACL2 can be used to prove Axiom mathematical statements. Lisp systems like Clojure make this combination simple to implement. I believe that, given enough time for Clojure to mature, we will see large domain specific languages developed. These will be easy to combine in a single Clojure image. This paper provides a potential way to write parallel code for specific domains. It attracted multi-million euro funding and could represent a specific way forward for parallel Clojure programs. Tim Daly -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: HPC in scala ..
Hello Everybody, not directly related to clojure .. but it is interesting to know that scala people got a huge funding to further the state of the art in HPC... http://www.scala-lang.org/node/8579 Sunil. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en Very interesting. I wonder if Clojure can be one of the polymorphic targets. Certainly the Clojure macro facility can "lift" raw Clojure toward the DSL. Sigh. Yet more papers to read. :-) Tim Daly -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
HPC in scala ..
Hello Everybody, not directly related to clojure .. but it is interesting to know that scala people got a huge funding to further the state of the art in HPC... http://www.scala-lang.org/node/8579 Sunil. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en