scispace - formally typeset
Search or ask a question

Showing papers on "Source transformation published in 2012"


Journal ArticleDOI
TL;DR: This paper discusses the methodology that was developed for IBM Watson for performing acquisition, transformation, and expansion of textual resources and demonstrates the effectiveness of each technique through its impact on candidate recall and on end-to-end QA performance.
Abstract: A key requirement for high-performing question-answering (QA) systems is access to high-quality reference corpora from which answers to questions can be hypothesized and evaluated. However, the topic of source acquisition and engineering has received very little attention so far. This is because most existing systems were developed under organized evaluation efforts that included reference corpora as part of the task specification. The task of answering Jeopardy!™ questions, on the other hand, does not come with such a well-circumscribed set of relevant resources. Therefore, it became part of the IBM Watson™ effort to develop a set of well-defined procedures to acquire high-quality resources that can effectively support a high-performing QA system. To this end, we developed three procedures, i.e., source acquisition, source transformation, and source expansion. Source acquisition is an iterative development process of acquiring new collections to cover salient topics deemed to be gaps in existing resources based on principled error analysis. Source transformation refers to the process in which information is extracted from existing sources, either as a whole or in part, and is represented in a form that the system can most easily use. Finally, source expansion attempts to increase the coverage in the content of each known topic by adding new information as well as lexical and syntactic variations of existing information extracted from external large collections. In this paper, we discuss the methodology that we developed for IBM Watson for performing acquisition, transformation, and expansion of textual resources. We demonstrate the effectiveness of each technique through its impact on candidate recall and on end-to-end QA performance.

41 citations


Proceedings ArticleDOI
01 Jan 2012
TL;DR: An extension of Constraint Handling Rules (CHR) with dierent visualization features to visualize the execution of rules applied on a list of constraints and to represent some of the CHR constraints as objects and visualize the effect of CHR rules on them.
Abstract: In this paper, we propose an extension of Constraint Handling Rules (CHR) with dierent visualization features. One feature is to visualize the execution of rules applied on a list of constraints. The second feature is to represent some of the CHR constraints as objects and visualize the effect of CHR rules on them. To avoid changing the compiler, our implementation is based on source-to-source transformation. 1998 ACM Subject Classification I.2.2 Automatic Programming, D.3.2 Language Classifications

9 citations


01 Jan 2012
TL;DR: This work investigates a generic approach of applying AD tools on hybrid parallel codes using a dense matrixmatrix multiplication as a case study.
Abstract: OpenMP and MPI are typically used in combination to implement distributed shared memory parallelization schemes for numerical simulations on hybrid systems. The performance of said numerical simulations is frequently linked to the efficient and accurate computation of derivatives. One method of acquiring this derivative information for a given code is algorithmic differentiation (AD). AD implementations are subdivided into either source transformation or overloading tools. We investigate a generic approach of applying AD tools on hybrid parallel codes. A dense matrixmatrix multiplication serves as a case study.

6 citations



Book ChapterDOI
01 Jan 2012
TL;DR: This paper develops techniques generally applicable for adjoint code generation in the face of dynamic data reshapings occurring both on the left- and right-hand side of assignments in Matlab.
Abstract: Productivity-oriented programming languages typically emphasize convenience over syntactic rigor. A well-known example is Matlab, which employs a weak type system to allow the user to assign arbitrary types and shapes to a variable, and it provides various shortcuts in programming that result in implicit data reshapings. Examples are scalar expansion, where a scalar is implicitly expanded to a matrix of the appropriate size filled with copies of the scalar value, the use of row vectors in place of column vectors and vice versa, and the automatic expansion of arrays when indices outside of the previously allocated range are referenced. These features need to be addressed at runtime when generating adjoint code, as Matlab does not provide required information about types, shapes and conversions at compile time. This fact, and the greater scope of reshaping possible, is a main distinguishing feature of Matlab compared to traditional programming languages, some of which, e.g. Fortran 90, also support vector expressions. In this paper, in the context of the AdiMAT source transformation tool for Matlab, we develop techniques generally applicable for adjoint code generation in the face of dynamic data reshapings occurring both on the left- and right-hand side of assignments. Experiments show that in this fashion correct adjoint code can be generated also for very dynamic language scenarios at moderate additional cost.

3 citations


Journal ArticleDOI
13 Dec 2012
TL;DR: The effort to evaluate the adaption of AliRoot to the needs of multi-threading and to provide the capability of parallel processing by using a semi-automatic source-to-source transformation to address the problems as described before and to provided a straight-forward way of parallelization with almost no interference between threads is described.
Abstract: Chip-Multiprocessors are going to support massive parallelism by many additional physical and logical cores. Improving performance can no longer be obtained by increasing clock-frequency because the technical limits are almost reached. Instead, parallel execution must be used to gain performance. Resources like main memory, the cache hierarchy, bandwidth of the memory bus or links between cores and sockets are not going to be improved as fast. Hence, parallelism can only result into performance gains if the memory usage is optimized and the communication between threads is minimized. Besides concurrent programming has become a domain for experts. Implementing multi-threading is error prone and labor-intensive. A full reimplementation of the whole AliRoot source-code is unaffordable. This paper describes the effort to evaluate the adaption of AliRoot to the needs of multi-threading and to provide the capability of parallel processing by using a semi-automatic source-to-source transformation to address the problems as described before and to provide a straight-forward way of parallelization with almost no interference between threads. This makes the approach simple and reduces the required manual changes in the code. In a first step, unconditional thread-safety will be introduced to bring the original sequential and thread unaware source-code into the position of utilizing multi-threading. Afterwards further investigations have to be performed to point out candidates of classes that are useful to share amongst threads. Then in a second step, the transformation has to change the code to share these classes and finally to verify if there are anymore invalid interferences between threads.