25 research outputs found
Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation
Computer systems are increasingly featuring powerful parallel devices with the advent of many-core CPUs and GPUs. This offers the opportunity to solve computationally-intensive problems at a fraction of the time traditional CPUs need. However, exploiting heterogeneous hardware requires the
use of low-level programming language approaches such as OpenCL, which is incredibly challenging, even for advanced programmers.
On the application side, interpreted dynamic languages are increasingly becoming popular in many domains due to their simplicity, expressiveness and flexibility. However, this creates a wide gap between the high-level abstractions offered to programmers and the low-level hardware-specific
interface. Currently, programmers must rely on high performance libraries or they are forced to write parts of their application in a low-level language like OpenCL. Ideally, non-expert programmers should be able to exploit heterogeneous hardware directly from their interpreted dynamic languages.
In this paper, we present a technique to transparently and automatically offload computations from interpreted dynamic languages to heterogeneous devices. Using just-in-time compilation, we automatically generate OpenCL code at runtime which is specialized to the actual observed data types using profiling information. We demonstrate our technique using R, which is a popular interpreted dynamic language predominately used in big data analytic. Our experimental results show the execution on a GPU yields speedups of over 150x compared to the sequential FastR implementation and the obtained performance is competitive with manually written GPU code. We also show that when taking into account start-up time, large speedups are achievable, even when the applications run for as little as a few seconds
The Protection of Animals through Human Rights. The Case-Law of the European Court of Human Rights
The chapter discusses the potential of a human rights framework to contribute to the growth and development of global animal law. It takes as example the jurisprudence of the European Court of Human Rights, and examine the major trends in the Court’s judgments and admissibility decisions that directly or indirectly concern the rights or welfare of animals. It is concluded that the Court is not indifferent to the welfare of animals, but that animal welfare is instrumentalised: it is understood not as a good in itself, but is instead valued for its implications for human welfare and rights. The chapter then considers the obstacles that the anthropocentrism of the human rights idea and the instrumentalisation of animal concerns present to the use of human rights frameworks to further the development of global animal law, as well as the opportunities that exist in the meeting of these paradigms. It concludes that although the telos of human rights law is different from that of animal law, nevertheless there exist many overlapping concerns within which mutually beneficial interactions are possible