Dynamic recognition of synchronization operations for improved data race detection Debugging multithreaded programs, which involves detection and identification of the cause of data races, has proved to be a hard problem. Although there has been significant amount of research [20, 28, 25, 12, 10] on this topic, prior works rely on one important assumption -the debuggers must be aware of all the synchronization operations that take place during a program run. This assumption is a significant limitation as multithreaded programs, including the popular SPLASH-2 benchmark [30] , have barriers and flag synchronizations implemented in the user code. We show that the lack of knowledge of these synchronization operations leads to unnecessary reporting of numerous races. Our experiments with SPLASH-2 benchmark suite show that 12-131 distinct segments in source code, on an average, give rise to well over 4 million dynamic instances of falsely reported races for these programs. We propose a dynamic software technique that identifies the user defined synchronizations exercised during a program run. This information not only helps avoids reporting of unnecessary races, but also helps a record/replay system to speedup the replay.Our evaluation confirms that our synchronization detector is highly accurate with no false negatives and very few false positives. Thus, reporting of nearly all unnecessary races is avoided. Finally, we show that the knowledge of synchronization operations resulted in about 23% reduction in replay time. With the advent of multicores, multithreaded programming has acquired more importance. Unfortunately, debugging multithreaded programs, involving detecting and identifying the causes of data races, has proved to be a hard problem. Although, there has been significant research [20, 28, 25, 12, 10] on this topic, prior works suffer from one serious limitation: an inherent assumption is made that the data race detectors are aware of all the synchronization operations happening in the program. This is not a good assumption to make in general as multithreaded programs, including the popular SPLASH-2 benchmarks [30] , have barriers and flag synchronizations implemented in the user code. It is unreasonable to assume that the data race detector is aware of all such user defined synchronization operations. However, the knowledge of synchronization operations is crucial to data race detection. This is due to the following two reasons.. First, synchronization operations themselves cause races in the program. These races, known as synchronization races [25] , arise due to the implementations of the synchronization operations. Any synchronization-unaware data race detector is bound to report these as data races. Unfortunately, these are not the races that the user is interested in, as these synchronization races are benign. In our experiments with SPLASH-2 [30] programs, we found that user defined synchronization operations including barriers and flag synchronization were used across all programs in the suite and resulted in 1 to 19 distinct segments of code being present in the programs, which gave rise to numerous synchronization races being reported.. Second, a data race detector that is not aware of synchronization operations is liable to report races that are infeasible [25] and consequently cause more false positives. This is because shared memory accesses that are protected by synchronization operations are not actually data races; if the race detector is unaware of the synchronization operations, it will report these protected accesses as races. In our experiments, we found that this caused an additional 11 to 107 distinct segments of code being present in programs that resulted in infeasible races, i.e false positives, to be reported.. Unfortunately, identifying synchronization operations in the program is not trivial. Synchronization may happen via simple flag synchronizations or through complex barrier synchronization or spin locks. Often these synchronization operations are implemented in the program source code itself and not in libraries and there are several different algorithms to accomplish each kind of synchronization peration. Hence identifying synchronization operations, at best, is a tedious process requiring manual source code inspection. In this paper, we propose a dynamic technique to identify user defined synchronization operations. Our technique is based on the observation that the spinning read is the essential part of each synchronization construct and is the major cause of synchronization races. Our software implementation of this technique is built on top of the Pin [14] dynamic instrumentation engine. Our experiments confirm that our dynamic technique is able to identify the user defined synchronization operations with no false negatives and very few false positives.. There has also been significant research on record/replay systems [4, 19, 31, 18] , whose purpose is to enable deterministic replay debugging. We propose a scheme where our synchronization detection technique can be used to optimize replay. This is based on the observation that it is not necessary to implement the synchronization operations exactly during replay; it suffices if we just enforced those dependencies during replay, that the synchronization operations were themselves trying to enforce. Our experiments on the SPLASH-2 benchmark suite, confirm that synchronizationaware replay, on a uniprocessor, is 23% faster.. The remainder of the paper is organized as follows. Section 2 gives a discussion of benign races and closely related work. In section 3 we present our approach for dynamic detection of synchronization operations. In section 4 we describe how this information is used in data race detection and efficient replay. Section 5 presents results of our experiments. Section 6 contains a discussion of related work. We conclude in Section 7. In this paper we first discussed how lack of knowledge of user defined synchronizations can lead to a lot of false positives in race detection tools. We then proposed a technique to dynamically identify synchronization operations that are exercised in a program run. This information was demonstrated to be highly effective in filtering out synchronization and infeasible races. Furthermore, our technique can be easily exploited by a record/replay system to significantly speedup the replay. A scheme of using the knowledge of synchronizations to optimize replay is proposed.. Our evaluation confirms that our synchronization detector is highly accurate with no false negatives and very few false positives. We also show that, on average, our optimized software implementation causes a 9 fold slowdown in program execution. Finally, we showed that the knowledge of synchronization operations resulted in about 23% reduction in replay time. Software based race detection techniques can be broadly classified into static and dynamic approaches. Static analysis techniques [27, 5, 9] utilize type analysis and knowledge of synchronization operations to identify data races. The important limitation of static analysis approaches is their accuracy in terms of false positives and false negatives reported [20] .. Dynamic race detection techniques can be broadly divided into three categories, those using happens-before algorithm, those using lockset algorithm, and those combining happensbefore and lockset algorithms. The happens-before based techniques use the execution order and the knowledge of synchronization events to compute happens-before partial order, which was proposed by Lamport in [13] . If two accesses from different threads to a shared location are not ordered by the happens-before relation, a data race will be reported. Race detection techniques used in [22, 6, 1, 7, 25, 16] are in this category.. Race detectors using lockset algorithm basically focus on lock-based multithreaded programs. The idea first proposed by Savage et al. in [28] is to verify that every shared-memory access is associated with a correct locking behavior. To avoid false positives due to some common programming practices, such as using read-only shared variables after they are initialized, many improved lockset algorithms that basically track the states of each memory location are proposed and utilized in recent works [28, 12, 10, 29] .. Both happens-before and lockset algorithms have their own drawbacks for race detection. Happens-before algorithm is hard to implement in software and more likely to miss some potential races (false negatives). On the other hand, lockset method is efficient to implement but it usually gives too many false alarms. Therefore, many works attempt to combine these two algorithms in some way in order to overcome the drawbacks. The hybrid techniques are discussed in [8, 23, 32, 24] .. To report data races as accurately as possible, all of the above approaches need exact synchronization information regardless of whether synchronizations are implemented in libraries or user code. Unfortunately, when monitoring a program, none of those approaches attempt to recognize every synchronization event, especially those implemented in user code. They either make an assumption that all synchronizations are in the library or ignore synchronizations defined by user. In reality, however, programmers may use different synchronization implementations according to their demands as shown in SPLASH-2 benchmark suite rather than using library implementations. Thus, when those detectors are applied, many synchronization races and infeasible races will be falsely reported to debuggers, which may consume vast amounts of time. On the contrary, our technique is effective in avoiding the reporting of benign synchonization or infeasible races by automatically identifying the synchronizations no matter how the synchronizations are implemented. Hence, our current work is a complement to prior work.. Narayanasamy et. al. [20] focus on classifying the reported races into benign and harmful races using offline replay analysis. As discussed earlier, the above technique can handle synchronization races but it cannot handle infeasible races. Compared to the above work, our approach can find synchronization races on-the-fly. It can also avoid reporting infeasible races when working together with other race detection techniques. Implementation. Our synchronization detection algorithm is implemented by using the Pin [14] dynamic instrumentation framework to instrument the program as it executes. A load table is implemented by a struct variable for each thread to store the information about each potential spinning read, to help us determine if it actually is one. The information includes the value, address, the execution count of each load and a flag. We also use shadow memory support [21] for maintaining information about each store instruction. Specifically, we store the PC of the store instruction and the thread-id in the shadow memory corresponding to the memory location for the store. To determine if a read is a spinning read, we examine if the value loaded (and the address) remains unchanged for a threshold number of times; and when the value changes, we ensure that it is caused by a store coming from a different thread. This store, incidentally, is also the store that races with the spinning read. If the above conditions are satisfied, we can conclude that the load PC is actually a spinning read. Note that the accesses to the shadow memory have to be done atomically, so we use Pin Lock to prevent any possible violations. Since the Pin Lock is provided by the instrumentation tool, it will not affect the detection of synchronizations in the original program. All our experiments were conducted under Fedora 4 OS running on a dual quad-core Xeon machine with 16GB memory. Each core is running at 3.0 GHz. Benchmarks. In our experiments, we choose the SPLASH-2 benchmark [30] suite as it is widely used to facilitate the study of shared memory multiprocessors. Table 1 shows the name, number of lines, input, and brief description for each program used in our experiments. These programs have different types of synchronizations (flag synchronizations, locks, and barriers) most of which are defined by PARMACS Macro constructs [2] . These constructs are different from library routines. Unlike the implementations of library routines, during compilation, the implementations of the constructs will cause their code to be inlined into the user code.. Using PARMACS constructs in source code gives programmers the flexibility to choose different implementations of synchronizations according to their needs like performance, portability etc. For example, the programmer may use an available implementation of a synchronization operation from a library routine (e.g., pthread library) or the programmer may develop his or her own implementation. For instance, in some SPLASH-2 benchmarks, we observe that programmers have implemented their own flag synchronizations in the user code (Figure 1(a) ) rather than using PARMACS Macro construct. Even for Macro constructs, library routines may not provide the implementations that programmers want. For example, counter based barrier using spin lock is not available in pthread library. Therefore, programmers have to implement their own algorithms for such constructs (Figure 1(b) ).. We studied the benchmarks by identifying occurrences of synchronization and infeasible races in these benchmarks. To carry out this study we applied a race detection tool, which computes the happens-before partial order based on the knowledge of synchronization operations in the libraries. All synchronizations implemented in the user code are ignored. The results of this study depend upon what synchronization operations are used from libraries. While the flag synchronization must always be expressed in user code, in general, the LOCK/UNLOCK and BARRIER operations could be either expressed in user code or used from an available library. For SPLASH-2 benchmarks we consider three different scenarios:. (Realistic) Given the availability of the pthread library on Fedora 4, spin lock implementation is available in form of two library routines, pthread spin lock and pthread spin unlock. However, BARRIER operation must be implemented in the user code;. (Optimistic) We assume that LOCK/UNLOCK and BAR-RIER operations are available as library routines. To study this scenario we compiled our own implementation of BARRIER into a library file; and (Pessimistic) We assume that LOCK/UNLOCK and BAR-RIER operations are implemented in user code. Table 2 shows the number of synchronization races and infeasible races found in the scenarios. Note that we create 4 threads for each benchmark in our experiments. For each scenario, 4 columns giving the number of distinct synchronization races, dynamic synchronization race instances, distinct infeasible races and dynamic infeasible race instances. For the realistic scenario (columns 2-5), barriers and flag synchronizations contribute to the synchronization races. The number of observed distinct races in synchronization and their corresponding dynamic instances are shown in column 2 and 3, which varies from 1-19 and 15.1K -17.3M respectively. Since these synchronizations cannot be captured by race detector, 11-107 distinct infeasible races will be reported. These correspond to thousands of dynamic infeasible races that are reported (column 4-5). Thus we can see that user defined synchronization operations cause a significant number of distinct false positives (12-131) to be reported.. For the pessimistic scenario (columns 10-13) these numbers are even higher. As we can see in Table 2 , 55-275 distinct synchronization race instances contribute to millions of dynamic synchronization races. In addition, millions of distinct and dynamic infeasible races are also reported. To perform this experiment we implemented a Test and Testand-Set lock via an atomic decrement x86 instruction for LOCK/UNLOCK Macro constructs, and a counter-based sense-reversing barrier for BARRIER Macro constructs.. Finally, as expected, for the optimistic scenario (columns 6-9), the number of distinct synchronization and infeasible races is small and these gave rise to few thousand dynamic races. It should be noted that to conduct this experiment we had to disassemble our own library code and hard-code the instruction addresses into the race detector. Thus, while this approach gives good results, it places a great deal of burden on the programmer.

O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A comparison of two input methods for keypads on mobile devices Two mobile device text entry methods were evaluated. The well-known Multitap method was compared to our RollPad method on a new device utilizing a tactile touchpad in place of a keypad. RollPad was well liked by participants. KSPC (keystrokes per character) was significantly lower: 1.42 compared to 2.13 with Multitap. However, no significant difference was found in error rates or entry speed, with speed measured at about 7.3 wpm for both methods. Mobile devices are generally smaller than their non-mobile counterparts and often suffer from compromises due to their size. Most mobile phones use a 12-key keypad, which allows for a small form factor legible labels. Although fine for entering digits, elaborate methods are required to enter alphabetic characters. With the increased demand for mobile text input, better entry methods are desirable. Two techniques for text entry on mobile devices were evaluated. MultiTap technique utilized the standard method of input used on mobile phones today. RollPad uses one touch per key, combined with a rolling action to select the desired letter. KSPC (keystrokes per character) differed significantly different between RollPad (1.42) and Multitap (2.13). However, no significant differences were found in text entry speed or accuracy. RollPad averaged 7.32 wpm while Multitap averaged 7.33 wpm.. Participants generally liked the novel RollPad technique and accepted the unusual addition of tactile feedback to the device. Further research is warranted in evaluating the two methods in a longitudinal study.

O O O O B O O O O B I O O B B I O O O O O O B O O O O O B O O O B O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B I O B I O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O


Parallel Two-Sided Matrix Reduction to Band Bidiagonal Form on Multicore Architectures Abstract-The objective of this paper is to extend, in the context of multicore architectures, the concepts of tile algorithms [Buttari et al., 2007] for Cholesky, LU, and QR factorizations to the family of two-sided factorizations. In particular, the bidiagonal reduction of a general, dense matrix is very often used as a preprocessing step for calculating the Singular Value Decomposition. Furthermore, in the Top500 list of June 2008, 98 percent of the fastest parallel systems in the world were based on multicores. This confronts the scientific software community with both a daunting challenge and a unique opportunity. The challenge arises from the disturbing mismatch between the design of systems based on this new chip architecture-hundreds of thousands of nodes, a million or more cores, reduced bandwidth and memory available to cores-and the components of the traditional software stack, such as numerical libraries, on which scientific applications have relied for their accuracy and performance. The many-core trend has even more exacerbated the problem, and it becomes critical to efficiently integrate existing or new numerical linear algebra algorithms suitable for such hardware. By exploiting the concept of tile algorithms in the multicore environment (i.e., high level of parallelism with fine granularity and highperformance data representation combined with a dynamic data-driven execution), the band bidiagonal reduction presented here achieves 94 Gflop/s on a 12;000 Â 12;000 matrix with 16 Intel Tigerton 2.4 GHz processors. The main drawback of the tile algorithms approach for the bidiagonal reduction is that the full reduction cannot be obtained in one stage. Other methods have to be considered to further reduce the band matrix to the required form. T HE objective of this paper is to extend, in the context of multicore architectures, the concepts of tile algorithms by Buttari et al. [7] for Cholesky, LU; and QR factorizations to the family of two-sided factorizations, i.e., Hessenberg reduction, Tridiagonalization, and Bidiagonalization. In particular, the Bidiagonal Reduction (BRD) of a general, dense matrix is very often used as a preprocessing step for calculating the Singular Value Decomposition (SVD) [14] , [28] :. A 2 IR mÂn ; X 2 IR mÂm ; AE 2 IR mÂn ; Y 2 IR nÂn :. The necessity of calculating SVDs emerges from various computational science disciplines, e.g., in statistics, where it is related to principal component analysis; in signal processing and pattern recognition; and also in numerical weather prediction [10] . The basic idea is to transform the dense matrix A to an upper bidiagonal form B by applying successive distinct transformations from the left (U) as well as from the right (V ) as follows:. B 2 IR nÂn ; U 2 IR nÂn ; A 2 IR nÂn ; V 2 IR nÂn :. The most commonly used algorithm to perform this twosided reduction is the Golub-Kahan bidiagonalization [15] . Although this algorithm works for any matrix size, it adds extra floating-point operations for rectangular matrices, and thus, faster methods such as the Lawson-Hanson-Chan bidiagonalization are preferred [8] . Here, only square matrices are considered, and performance result comparisons of different bidiagonalization algorithms for rectangular matrices will appear in a companion paper.. Also, we only look at the first stage of BRD, which goes from the original dense matrix A to a band bidiagonal matrix B b , with b being the number of upper diagonals. The second stage, which annihilates those additional b upper diagonals, has been studied especially by Lang [21] and is not examined in this paper. This two-stage transformation process is also explained by Grosser and Lang [16] . Although expensive, orthogonal transformations are accepted techniques and commonly used for this reduction because they guarantee stability, as opposed to Gaussian Elimination [28] . The two common transformations are based on Householder reflectors and Givens rotations. Previous work by the authors [22] demonstrates the effectiveness of Householder reflectors over Givens rotations. Therefore, the two-sided band BRD presented in this paper is achieved by using Householder reflectors.. Furthermore, in the Top500 list of June 2008 [1], 98 percent of the fastest parallel systems in the world were based on multicores. This confronts the scientific software community with both a daunting challenge and a unique opportunity. The challenge arises from the disturbing mismatch between the design of systems based on this new chip architecture-hundreds of thousands of nodes, a million or more cores, reduced bandwidth and memory available to cores-and the components of the traditional software stack, such as numerical libraries, on which scientific applications have relied for their accuracy and performance. The many-core trend has even more exacerbated the problem, and it becomes critical to efficiently integrate existing or new numerical linear algebra algorithms suitable for such hardware. As discussed in [7] , a combination of several parameters is essential to match the architecture associated with the cores:. 1. fine granularity to reach a high level of parallelism and to fit the cores' small caches; 2. asynchronicity to prevent any global barriers; 3. block data layout (BDL), a high-performance data representation to perform efficient memory access; and 4. dynamic data-driven scheduler to ensure that any enqueued task can immediately be processed as soon as all their data dependencies are resolved. While points 1 and 3 represent important items for onesided and two-sided transformations, points 2 and 4 are even more critical for two-sided transformations because of the tremendous amount of tasks generated by the right transformation. This imposes on the scheduler even more severe constraints due to the overlapping regions produced by the left and right transformations. Indeed, as a comparison, the algorithmic complexity for the QR factorization is 4=3 n 3 , while it is 8=3 n 3 for the BRD algorithm. Besides, previous work done by Kurzak et al. [19] , [20] shows how the characteristics of tiled algorithms perfectly match even the architectural features of modern multicore processors such as the Cell Broadband Engine processor.. However, the main drawback of the tile algorithms approach for the bidiagonal reduction is that the full reduction cannot be obtained in one stage. Other methods have to be considered to further reduce the band matrix to the required form. A section in this paper will address the origin of this issue.. The remainder of this paper is organized as follows: Section 2 recalls the standard BRD algorithm. Section 3 gives a detailed overview of previous projects in this area. Section 4 describes the implementation of the parallel tiled BRD algorithm. Section 5 outlines the pros and cons of static and dynamic scheduling. Section 6 presents the performance results. Comparison tests are run on shared-memory architectures against the state-of-the-art, high-performance dense linear algebra software libraries, LAPACK [3] , and ScaLAPACK [9] . Finally, Section 7 summarizes the results of this paper and presents the ongoing work. Yotov et al. [30] describes Cache-oblivious algorithms, which allow applications to take advantage of the memory hierarchy of modern microprocessors. These algorithms are based on the divide-and-conquer paradigm each division step creates subproblems of smaller size, and when the working set of a subproblem fits in some level of the memory hierarchy, the computations in that subproblem can be executed without suffering capacity misses at that level. In this way, divide-and-conquer algorithms adapt automatically to all levels of the memory hierarchy; in fact, for problems like matrix multiplication, matrix transpose, and FFT, these recursive algorithms are optimal to within constant factors for some theoretical models of the memory hierarchy.. Grosser and Lang [16] describe an efficient parallel reduction to bidiagonal form by splitting the standard algorithm into two stages, i.e., dense to banded and banded to bidiagonal, in the context of distributed memory systems. The QR and LQ factorizations are done using a tree approach, where multiple column/row blocks can be reduced to triangular forms at the same time, which can ameliorate the overall parallel performance. However, those triangular blocks are then reduced without taking into account their sparsity, which add some extra flops.. Ralha [25] proposed a new approach for the bidiagonal reduction called one-sided bidiagonalization. The main concept is to implicitly tridiagonalize the matrix A T A by a one-sided orthogonal transformation of A, i.e., F ¼ A V . As a first step, the right orthogonal transformation V is computed as a product of Householder reflectors. Then, the left orthogonal transformation U and the bidiagonal matrix B are computed using a GramSchmidt QR factorization of the matrix F . This procedure has numerical stability issues and the matrix U might loose its orthogonality properties.. Barlow et al. [4] and later, Bosner and Barlow [6] , further improved the stability of the one-sided bidiagonalization technique by merging the two distinct steps to compute the bidiagonal matrix B. The computation process of the left and right orthogonal transformations is now interlaced. Within a single reduction step, their algorithms simultaneously perform a block Gram-Schmidt QR factorization (using a recurrence relation) and a postmultiplication of a block of Householder reflectors chosen under a special criterion.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Some properties of partial fidelities Basic properties of Uhlmann's partial fidelities are discussed. Statistical interpretation in terms of POVM measurements is established. Multiplicativity properties are considered. The relationship between partial fidelities and partitioned trace distances is derived. As it is shown, the partial fidelities cannot decrease under unistochastic quantum operations. Thus, the partial fidelities have good properties in the sense of their use as distinguishability measures. The concept of fidelity provides a very useful measure of distinguishability [1, 2, 3] . It is well known that all the devices for quantum information processing are inevitably exposed to noise [4] . Therefore, the pure states used by us will eventually evolve to mixed states. Thus, good distance measures between mixed quantum states are needed for comparison of real and ideal processes [5] . For example, different measures of distinguishability were utilized for study of probability simplex [6] , quantum entanglement [7] , approximate broadcasting [8] and quantum circuit complexity [9] . If states are pure then comparison of them is not difficult. In contrast, there exist many ways to compare two mixed quantum states.. Both the fidelity and the trace distance are extensively utilized as measures of distinguishability [4, 10] . However, these two measures are not able to pose the problem of state closeness in all respects. For instance, the equality of fidelities for two pairs of density operators does not imply their unitary equivalence [11] . The justified answer is provided by use of the partial fidelities [11] . In the literature, other fidelity measures between quantum states have been discussed [12, 13] . There are also some closely related measures such as the Bures distance [6, 7] , the angle [4, 14] , the Monge distance [15] and the sine distance [16] .. In principle, reasons for use of one or another distance measure are especially based on main properties of the measure. These properties are usually connected with the measurements, behaviour under quantum operations and the convexity (concavity) in inputs. For convenience, they must provide useful mathematical tools for the work. In addition, the properties should have clear physical interpretation. In the present paper, we discuss the partial fidelities introduced by Uhlmann. In Ref. [11] Uhlmann paid key attention to the equivalence of pairs of mixed states under invertible transformations of the state space. The aim of the present work is to analyze partial fidelities in those respects that are not considered in Ref. [11] . In particular, quantum-classical relations and behaviour under quantum operations are examined. We have analyzed some important properties of Uhlmann's partial fidelities. The equality of the standard fidelity for two pairs of density operators does not imply their unitary equivalence. It is for this reason that the partial fidelities were introduced by Uhlmann. We have obtained simple bounds on k-th partial fidelity. Quantum-classical relations are considered in terms of quantum measurement. Like usual fidelity, this gives a statistical interpretation for partial fidelity. The relationship with partitioned trace distances is obtained. Our reasons are significantly based on the Ky Fan maximum principle and its consequences. In a certain sense, the partial fidelities are sub-multiplicative. It is shown that any partial fidelity cannot decrease under unistochastic quantum operation. That is, it enjoys monotonicity. In general, however, the partial fidelities are not monotone. The derived properties allow to lighten work with the partial fidelities.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O


Main Memory Evaluation of Monitoring Queries Over Moving Objects Abstract. In this paper we evaluate several in-memory algorithms for efficient and scalable processing of continuous range queries over collections of moving objects. Constant updates to the index are avoided by query indexing. No constraints are imposed on the speed or path of moving objects or fraction of objects that move at any moment in time. We present a detailed analysis of a grid approach which shows the best results for both skewed and uniform data. A sorting based optimization is developed for significantly improving the cache hit-rate. Experimental evaluation establishes that indexing queries using the grid index yields orders of magnitude better performance than other index structures such as R * -trees. The problem of handling different types of queries on moving objects has caught wide attention recently due to the development of location detection and wireless technologies [2, 7, 14, 23] . Using these technologies, it is possible to develop systems where a local server tracks the locations of moving objects. Mobile objects can report their location to this server through a wireless interface, or the objects can be tracked through ground-based radar or satellites.. As an example, consider a system where aircraft are tracked by radars. Regions of space in which aircraft can be detected by enemy radars or anti-aircraft systems are identified by a server. The server continuously monitors the location of friendly aircraft with respect to these regions and issues alerts as soon as an aircraft is in a detection area. Alternatively, there might be areas where only specially designated aircraft are allowed to be. Such areas can be monitored continuously at the server to detect trespassers. More generally, the location of people and vehicles can be tracked with such systems.. In this paper we address the problem of evaluating multiple concurrent continuous range queries on moving objects. In contrast to regular queries that are evaluated once, a continuous query remains active over a period of time and has to be continuously evaluated during this time. Each of these queries needs to be re-evaluated as the objects move. A solution for continuous real-time evaluation of queries that scales to large numbers of queries and objects is a major challenge.. While the focus of our work is on moving object environments, the algorithms presented here can easily be applied in a more general setting. For example, to continuously compute an ε-join 1 between a set of relatively fixed points and another set of points that may move arbitrarily. Such continuous queries over ever-changing data are also important for many applications that handle streaming data from sensors and wireless location-based services in Location-commerce (L-commerce) [16, 27] . Towards this goal of wider applicability of our algorithms, we make no assumptions about the speed and nature of the movement of objects or the fraction of objects that can move at any time instant. That is, at any moment in time all objects can move with arbitrary speeds in arbitrary directions.. Current efforts at evaluating queries over moving objects have focused on the development of disk-based indexes. The problem of scalable, real-time execution of continuous queries may not be well suited for disk-based indexing for the following reasons: (i) the need to update the index as objects move; (ii) the need to re-evaluate all queries when any object moves; and (iii) achieving very short execution times for large numbers of moving objects and queries. These factors, combined with the drastically dropping main memory costs make main memory evaluation highly attractive. The growing importance of main memory based algorithms has been underscored by the Asilomar report [4] , which projects that within 10 years main memory sizes will be in the range of terabytes.. The location of a moving object can be represented in memory as a 2-dimensional point while its other attributes can be stored on disk. One local server is likely to be responsible for handling a limited number of moving objects (e.g. 1,000,000). For such settings, for even large problem sizes, all the necessary data and auxiliary structures, can be easily kept in the main memory of a high-end workstation.. In order for the solution to be effective it is necessary to efficiently compute the matching between large numbers of objects and queries. While multidimensional indexes tailored for main memory, as proposed in [14] , would perform better than disk-oriented structures, the use of an index on the moving objects suffers from the need for constant updating as the objects move-resulting in degraded performance. To avoid this need for constant updating of the index structure and to improve the processing of continuous queries, we propose a very different approach: Query Indexing. In contrast to the traditional approach of building an index on the moving objects, we propose to build an index on the queries. This approach is especially suited for evaluating continuous queries over moving objects, since the queries remain active for long periods of time, and objects are constantly moving.. In this paper we investigate several in-memory index structures for efficient and scalable processing of continuous queries. We evaluate not only indexes designed to be used in main memory, but also disk-based indexes adapted and optimized for main memory. Our results show that using a grid-like structure gives the best performance, even when the data is skewed. We also propose an effective technique for improving the caching performance.. The proposed solutions are extremely efficient, e.g. 100,000 (25,000) continuous queries over 100,000 (1,000,000) objects can be evaluated in as little as 0.288 (0.762) seconds. The use of query indexing is critical for achieving such efficient processing. We also present an analytical evaluation for the optimal grid size. The analysis matches well with the experimental results. A technique for improving the cache hit-rate is developed that achieves a speed up of 100%.. The remainder of this paper is organized as follows. In Section 2 we present related work. Section 3 describes the problem of continuous query processing, Query Indexing, and the index structures considered. We also present an effective technique for improving the cache hit-rate. Section 4 presents the experimental results and Section 5 concludes the paper. In this paper we presented a Query-Index approach for in-memory evaluation of continuous range queries on moving objects. We established that the proposed approach is in fact a very efficient solution even if there are no limits on object speed or nature of movement or fraction of objects that move at any moment in time, which are common restrictions made in similar research. We presented results for seven different in-memory spatial indexes. The grid approach showed the best result even for the skewed case. A technique of sorting the objects to improve the cache hit-rate was presented. The performance of the grid index was roughly doubled with this optimization. An analysis for selecting optimal grid size and experimental validation was presented. We also showed that even though the set of continuous queries is to remain almost unchanged, nevertheless grid can very efficiently add or remove large numbers of queries. Overall, indexing the queries using the grid index gives orders of magnitude better performance than other index structures such as R * -trees. The growing importance of moving object environments is reflected in the recent body of work addressing issues such as indexing, uncertainty management, broadcasting, and models for spatio-temporal data. Optimization of disk-based index structures has been explored recently for B+-trees [22] and multidimensional indexes [14] . Both studies investigate the redesign of the nodes in order to improve cache performance. Neither study addresses the problem of executing continuous queries or the constant movement of objects (changes to data). The goal of our algorithm is to efficiently and continuously re-generate the mapping between moving objects and queries. Our algorithm makes no assumptions about the future positions of objects. It is also not necessary for objects to move according to wellbehaved patterns as in [23] . The problem of scalable, efficient computation of continuous range queries over moving objects is ideally suited for main memory evaluation. To the best of our knowledge no existing work addresses the main memory execution of multiple concurrent queries on moving objects as proposed in the following sections.. Indexing techniques for moving objects have been proposed in the literature, e.g., [3, 17] index the histories, or trajectories, of the positions of moving objects, while [23] indexes the current and anticipated future positions of the moving objects. In [15] , trajectories are mapped to points in a higher-dimensional space which are then indexed. In [23] , objects are indexed in their native environment with the index structure being parameterized with velocity vectors so that the index can be viewed at future times. This is achieved by assuming that an object will remain at the same speed and in the same direction until an update is received from the object.. Uncertainty in the positions of the objects is dealt with by controlling the update frequency [5, 6, 18, 29] , where objects report their positions and velocity vectors when their actual positions deviate from what they have previously reported by some threshold. Tayeb et al. [26] use quad-trees to index the trajectories of one-dimensional moving points. Kollios et al. [15] map moving objects and their velocities into points and store the points in a kD-tree. Pfoser et al. [19, 20] index the past trajectories of moving objects that are presented as connected line segments. The problem of answering a range query for a collection of moving objects is addressed in [2] through the use of indexing schemes using external range trees. Wolfson et al. [28, 30] consider the management of collections of moving points in the plane by describing the current and expected positions of each point in the future. They address how often to update the locations of the points to balance the costs of updates against imprecision in the point positions. Issues relating to location dependent database querying are addressed in [24] . Broadcast of data becomes an important technique for scalable communication in the mobile environment. Efficient broadcast techniques are proposed in [1, [9] [10] [11] . Spatio-temporal database models to support moving objects, spatiotemporal types and supporting operations have been developed in [7, 8] . A excellent review of multidimensional index structures including grid-like and Quad-tree based structures can be found in [26] .

B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O


Associating characters with events in films The work presented here combines the analysis of a film's audiovisual features with the analysis of an accompanying audio description. Specifically, we describe a technique for semantic-based indexing of feature films that associates character names with meaningful events. The technique fuses the results of event detection based on audiovisual features with the inferred on-screen presence of characters, based on an analysis of an audio description script. In an evaluation with 215 events from 11 films, the technique performed the character detection task with P recision = 93% and Recall = 71%. We then go on to show how novel access modes to film content are enabled by our analysis. The specific examples illustrated include video retrieval via a combination of event-type and character name and our first steps towards visualization of narrative and character interplay based on characters occurrence and co-occurrence in events. As the size and availability of digital film archives increase, so too does the need for tools that assist those who need to access them. This could include film fans in the general public, students and scholars of the medium or editors and other broadcast/film professionals. Given the significant volume and data-rich nature of the content to be accessed, the efficacy of such tools critically depends on their ability to perform automated semantic analysis and description of film content, be it for video retrieval, browsing, summarization Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. CIVR'07, or visualization [1] . In an ideal world, an appropriate indexing of film content (as espoused in [2] ), would mirror that of a book whereby access is facilitated via either a linear Table of Contents or a non-linear Index listing the occurrences of important semantic concepts. Much research to date has focused on the former, as evidenced by the array of works on shot-level and scene-level analysis of content in recent years [3, 4, 5, 6] . For the latter, it is not fully understood what constitutes such an Index for film content, but we know it would typically include the film's characters and the events in which they are involved, perhaps along with the range of cinematic techniques used by directors to convey a story. In this paper, we discuss our initial work towards creating a non-linear Index of important objects (in this case characters) and events The significant challenges posed by semantic analysis of video content, usually referred to as the 'semantic gap' [7] , requires the fusion of several multimodal information streams. A meaningful and useful description of 'who, what, where, when and why' as depicted in a film, typically cannot be generated by video analysis alone. Rather, multiple additional sources to the moving image itself, such as the soundtrack and the various kinds of text that are associated with a film, should also be considered in any analysis.. For the first time, the work presented here combines the analysis of a film's audiovisual features with the analysis of an accompanying audio description, in order to automatically produce a semantic description of a film in terms of the characters and events depicted. We choose this text source to complement our audiovisual analysis, since compared with a film script, an audio description gives a more accurate account of who and what can be seen on-screen. Moreover, this account is tightly time-aligned with the film. Our analysis of audiovisual features leads to structuring the film into three kinds of event: Dialogue, Exciting and Musical. Our analysis of audio description identifies the on-screen presence of the film's main characters who can then be associated with these detected events. The resulting description of a film in terms of events and associated characters enables innovative modes of information access to the film content.. Section 2 motivates and describes the events that we consider important and provides more information on audio description in general. It also reviews the work that we consider most related to ours in the current state of the art. Our method for associating characters and events is described in detail in section 3 and evaluated in section 4. Section 5 then describes novel modes of access to film content that are enabled by our analysis -video retrieval via a combination of event-type and character name and our first steps towards visualization of plot and character interplay based on character occurrence and co-occurrence within events. Finally, we draw some conclusions and outline directions for future research in section 6. In this paper, we demonstrated the benefits of combining the results of audiovisual event-based indexing with an analysis of an accompanying audio description. We showed how Table 3 : Dual co-occurrence highlighted by different colours in this manner it is possible to automatically associate film characters with the memorable events in which they occur. We explained why event-based indexing is preferable to shotbased and scene-based alternatives. We also note here that event-based indexing is better than indexing the occurrence of characters by single timestamps, which we could have achieved using audio description scripts without audiovisual analysis. Event-based indexing means that we can retrieve relevant surrounding material in response to users queries for characters. It also means that we can produce less cluttered and more meaningful visualisations which show clearly which characters appear together in events. We then have a good basis for character co-occurrence analysis, i.e. it would not make sense to analyse character co-occurrence based on how close their timestamps were. All in all, this further establishes the need for combining audiovisual analysis with information extraction from text. Text segmentation techniques applied to audio description could not access the film making principles embodied in the audio and visual data streams of film data. Conversely, audiovisual analysis is not able to describe semantic film content at the high level that audio description does. The approach was evaluated and initial results are encouraging. Further, the potential usefulness of the technique in terms of novel way of accessing film content was demonstrated. A number of directions for future work have already been identified. We plan to further develop the individual analyses, specifically to leverage the other's results in an iterative manner -the feedback loop depicted in figure 2. Future techniques will add different sources of text information, such as scripts or subtitles, in order to provide as rich a description as possible. We also plan to build a number of real applications based on the possibilities outlined in section 5. The actual effectiveness of the approach will then be evaluated in the context of these applications using a variety of user groups -general fans of feature films and film and media students at the University's School of Communication Studies have already been identified as target groups. Further investigation may facilitate character classification based on the types of events that they appear in, e.g. a character that appears in an unusually high amount of exciting events could be a villain. Additional inferences about a films' story may also be possible with further analysis. For example, it may be possible to detect of key points in a film by examining the first and last occurrences and cooccurrences of characters and their activities at those times. Previous work [23, 24] has shown the benefit of analysing the occurrence of characters on-screen. It was shown how the analysis of a character's appearance on-screen and subsequent disappearance gives a rhythm that can be used for topic segmentation and film classification, and for mining other semantic structures. However, in that work the annotation of character presence was done manually. The automation of such annotation is a key contribution of our work. Other complementary information about semantic film content has been obtained by the analysis of audiovisual features alone, for example, models of affective content [25, 26] and information about key points in a film's story coinciding with changes in its tempo [27] . The task of associating names with faces detected in frames of television programmes and films was recently addressed with promising results in [28] . Their technique aligns scripts (containing information about who is saying what) with subtitles (containing information about what is being said when) in order to cue a face detector as to which characters were likely to be seen talking in which frames. This technique was limited to frontal faces and of course relies on a character to be speaking in order to be detected. This technique will not work for characters not facing the camera, nor for scenes without dialogue. We believe that the analysis of audio description will give a much more complete set of character occurrences than scripts and subtitles, though there will of course be cases when these can provide complementary information.

O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O B O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O


Distributed chasing of network intruders Abstract. This paper addresses the graph searching problem in a distributed setting. We describe a distributed protocol that enables searchers with logarithmic size memory to clear any network, in a fully decentralized manner. The search strategy for the network in which the searchers are launched is computed online by the searchers themselves without knowing the topology of the network in advance. It performs in an asynchronous environment, i.e., it implements the necessary synchronization mechanism in a decentralized manner. In every network, our protocol performs a connected strategy using at most k + 1 searchers, where k is the minimum number of searchers required to clear the network in a monotone connected way, computed in the centralized and synchronous setting. Graph searching [18] is one of the most popular tool for analyzing the chase for a powerful and hostile agent, by a set of software agents in a network. Roughly speaking, graph searching involves an intruder and a set of searchers, all moving from node to node along the links of a network. The intruder is powerful in the sense that it is supposed to move arbitrarily fast, and to be permanently aware of the positions of the searchers. However, the intruder cannot cross a node or an edge occupied by a searcher without being caught. Conversely, the searchers are unaware of the position of the intruder. They are aiming at surrounding the intruder in the network. The intruder is caught by the searchers when a searcher enters the node it occupies. For instance, one searcher can catch an intruder in a path (by moving from one extremity of the path to the other extremity), while two searchers are required to catch an intruder in a cycle (starting from the same node, the two searchers move in opposite directions). In addition to network security, graph searching has several other practical motivations, such as rescuing speleologists in caves [6] or decontaminating a set of polluted pipes [19] . It has also several applications to the Graph Minor theory as it provides a dynamic approach to the analysis of static graph parameters such as treewidth and pathwidth [4] .

O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


The dcc curation lifecycle model The scientific record and the documentary heritage are increasingly created in digital form. The UK based Digital Curation Centre supports institutions who store, manage and preserve such data to help ensure its enhancement and continuing long-term use.The DCC (Digital Curation Centre) Curation Lifecycle Model provides a generic graphical high-level overview of the stages required for successful curation and preservation of digital material from initial conceptualisation. The model can be used to plan curation and preservation activities, to ensure sustainability of repository content or other digital material, within an organisation or consortium. It will help to ensure that all necessary stages are undertaken, each in the correct sequence. The model enables granular functionality to be mapped against it to define roles and responsibilities, and build a framework of standards and technologies to implement. It can help with the process of identifying additional steps which may be required, or actions which are not required by certain situations or disciplines, and of ensuring that processes and policies are adequately documented.Digital Curation Centre staff developed the model before undertaking a period of public consultation, which was recently completed. The newly ratified model will is being used by the DCC to ensure that information, services and advisory material cover all areas of the lifecycle. Domain-specific variations of the model will be developed, with greater levels of granularity, to help ensure that advice and information are easily accessible from the website. One planned utilisation is the development of domain specific standards frameworks within the DCC DIFFUSE Standards Frameworks project, to help practitioners identify which standards they should be using and where they would be appropriately implemented.This poster will present the DCC Curation Lifecycle Model, incorporating the results of the public consultation period held

O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Fluid Registration of Diffusion Tensor Images Using Information Theory Abstract-We apply an information-theoretic cost metric, the symmetrized Kullback-Leibler (sKL) divergence, or -divergence, to fluid registration of diffusion tensor images. The difference between diffusion tensors is quantified based on the sKL-divergence of their associated probability density functions (PDFs). Three-dimensional DTI data from 34 subjects were fluidly registered to an optimized target image. To allow large image deformations but preserve image topology, we regularized the flow with a large-deformation diffeomorphic mapping based on the kinematics of a Navier-Stokes fluid. A driving force was developed to minimize the -divergence between the deforming source and target diffusion functions, while reorienting the flowing tensors to preserve fiber topography. In initial experiments, we showed that the sKL-divergence based on full diffusion PDFs is adaptable to higher-order diffusion models, such as high angular resolution diffusion imaging (HARDI). The sKL-divergence was sensitive to subtle differences between two diffusivity profiles, showing promise for nonlinear registration applications and multisubject statistical analysis of HARDI data.Index Terms-Diffusion tensor imaging (DTI), fluid registration, high angular resolution diffusion imaging (HARDI), Kullback-Leibler divergence. In this paper, we proposed an inverse-consistent fluid registration algorithm, based on minimizing the symmetrized KL-divergence of the Gaussian PDFs between two DT-MR images, in which the diffusion tensor at each voxel was modeled as a spatial covariance matrix. Unlike the traditional tensor distance based on the Frobenius norm, this cost function based on the symmetrized KL-divergence (5) is affine invariant [15] . This invariance is helpful as it makes the computed correspondences between images robust to errors in estimating the linear (global alignment) term. Fiber structures between source and target DT images were well matched, especially in highly anisotropic areas, where the DTI signals convey the greatest information. Relative to approaches that aim to align the eigenvectors of the local diffusion process, we show that our approach is more generalizable, as the symmetrized KL-divergence is extendable to model higher-order water diffusivity profiles, by defining it as a PDF on the unit sphere and expanding the PDF using spherical harmonics. The symmetrized KL-divergence performs slightly but significantly better than (inner product of diffusivity functions with isotropic components deleted) as a cost functional for DTI registration in terms of tensor overlap. The OVL measure favors , but and OVL are somewhat correlated in gauging the alignment of eigenvalue-eigenvector pairs. We found that using , i.e., inner product with the linear term, did not provide a good gradient to maximize overlap between two DT images, which may indicate that introducing isotropic components of the diffusion tensors into a cost functional makes the cost functional less sensitive for accurate matching of DTI [21] . For HARDI, the symmetrized KL-divergence is more robust than standard inner product measures for detecting small rotational deviations between HARDI data at various diffusion weights and noise levels, making it an attractive measure for HARDI registration. In HARDI, we used the PPD procedure to adjust the direction of the diffusivity profiles, which is arguably more accurate than other methods (e.g., finite strain [21] , [22] ) given that it takes the originally estimated fiber directions into account. PCA determines one eigendirection, so it is appropriate both for diffusivity functions with a single global maximum, and for those with a dominant local maximum relative to other small local maxima. However, diffusivity functions may have multiple local maxima, e.g., in regions where fibers cross (e.g., the synthetic samples in Fig. 12 ), or when there is noise-free purely isotropic diffusion. In such cases, the principal direction estimated by PCA becomes arbitrary, and the simple PPD procedure may not be applicable in these regions. At this point, the finite strain method is advantageous as it extracts the rotational component from the Jacobian of the deformation fields, and the extracted rotational matrix can be used to reorient the diffusivity functions by resampling the SH series in (15) . Nevertheless, the finite strain method discards some deformation components (e.g., shearing and stretching), and is accurate only when the image deformations are small, or when large deformations are decomposed into small ones (e.g., the piecewise affine algorithm in [21] ).. Our algorithm is similar to that of Cao et al. [23] , [24] for nonlinear warping of DTI data, using image deformations represented by flows that are guaranteed to be diffeomorphic (i.e., smooth mappings with smooth inverses). Cao et al.'s approaches have provided the key ingredient of adapting a scalar registration method to a tensor registration method. The cost function in our work is based on information theory, and we adopted an inverse-consistent fluid model to guarantee that our transformations are diffeomorphic. This work forms part of a general improvement in nonlinear registration methods that have recently been modified to allow 1) large diffeomorphic deformations (e.g., large deformation diffeomorphic metric mapping (LDDMM) [43] or geodesic shooting [44] ), and 2) to achieve inverse-consistent mappings (i.e., maps where correspondences do not depend on the order of the two images being matched [39] , [52] ). The symmetrized KL-divergence, as a cost metric, can also be combined into the LDDMM scheme for DTI registration [24] . Nevertheless, our algorithm differs fundamentally from those by Cao et al. in that 1) the cost functional in our work is based on information theory rather than aligning principal fiber directions [23] or minimizing the Frobenius distance between two tensors [24] ; 2) we showed that the symmetrized KL-divergence is extendable to any representation of the PDF that models higher-order water diffusion, whereas Cao et al.'s approaches assume that water diffusion in each voxel can be described by the dominant orientation or the three eigenvalue-eigenvector pairs of a rank-2 tensor; and 3) in Cao's methods the tensor reorientation is explicitly optimized based on the PPD procedure, as eigenvectors of the tensors are part of the cost functional [21] . Because our approach can deal with generalized diffusion PDFs, it is likely to provide more reasonable assessments of signal matching in WM regions that may not have a single, well-defined eigenstructure. Ultimately, the best cost function should be the one that decreases error variance in the specific signal that is analyzed after the registration step, which differs in different applications of DTI (e.g., FA mapping versus statistics on fiber orientation parameters). In computing the symmetrized KL-divergence, it may help to incorporate tensor reorientation into the cost functional, e.g., by incorporating the dyadic expression for the diffusion tensor, , into (6) . This explicit reorientation, as used in [21] and [24] , optimizes metrics comparing tensors as a whole, in which the gradients of the cost function incorporate the effect of tensor reorientation. Nevertheless, the symmetrized KL-divergence in (4) is a generalized metric and can be applied to higher-order diffusion imaging data (e.g., HARDI data), in which the closed form for explicit tensor reorientation may not exist. Moreover, in Fig. 2 , we show that our implicit tensor reorientation scheme (where tensor reorientation is followed by each iteration of the fluid deformation) still ensures that the values of the KL-divergence for both the forward and backward deformations are smoothly decreasing, although we note that, compared with the explicit reorientation where the cost functional is minimized under the effect of reorientation, this implicit tensor reorientation scheme does not preclude the registration process from being trapped in local minima.. Finally, we should note some conceptual limitations of matching DTI. As with matching cortical gyri in standard structural images, there may not be a homology across subjects, between fibers or even major tracts at the gyrus by gyrus level, but some pragmatic normalization is necessary for multisubject mapping studies. Moreover, it might be problematic to match isotropic tensors, or those with very low anisotropy, e.g., in the gray matter and CSF, as good tract correspondence across subjects may not exist or may not be inferable from the available data [57] . In these cases, whether or not registration is successful depends on the goals and sensitivity of the analysis. Nevertheless, it is possible to quantify practical improvements in signal detection for clinically significant alterations in DTI parameters, without requiring a gold standard for matching fibers at the individual level.

B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B I I I I I B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A novel recommender system fusing the opinions from experts and ordinary people In this paper, we propose a novel recommendation algorithm fusing the opinions from experts and ordinary people. Instead of regarding one's judgement capability as his/her expertise, we present a new definition which measures the amount of the recommendable items one know in a certain area. When computing the expertise, we consider both the average value and the accumulative value, and introduce a free parameter α to tune between these two values. To evaluate the proposed algorithm, simulations are run on the Moviepilot dataset, and the results demonstrate that our algorithm outperforms the conventional collaborative filtering algorithm. The past decade witnesses the explosive growth of the information in the World Wide Web and the emerging of the information overloading problem. When being provided much more information than they are able to process, people can hardly identify what they are looking for. Information retrieval and information filtering are both important technologies developed to solve this problem. Besides them, recommender systems are another strong candidate to provide automatical and personalized information service, and draw much attention in recent years.. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Currently the research on the recommendation algorithm mainly focuses on two problems: the score-prediction and the preference-based filtering [1] . The goal of the scoreprediction is to predict the absolute values of the ratings for the items which one has not seen yet. On the other hand, the preference-based filtering algorithms try to dig out the items which one may like. Obviously, the preference-based filtering algorithms meet better the requirements from the real world, and we will focus on them in this paper.. Many algorithms have been developed to address the personalized recommendation problem, and a good survey can be found in [2] [3] . User-based collaborative filtering (CF) is widely used, and the main idea is to find the items liked by other people with similar taste. Different from the userbased CF, the item-based CF recommends the items which are similar with the user's collected items [4] [5] .. In real world, users carry heterogeneous expertise in real world [6] , which leads to different confidence levels of their ratings. If one is an expert in a certain area, his/her ratings are more trustworthy than the ratings of ordinary people. Therefore, emphasizing the experts' ratings is definitely helpful to improve the recommendation accuracy. An iterative refinement method was developed in [6] to estimate users' judgement capabilities. Though it has been shown that the iterative refinement method outperforms the naive method on a synthetic dataset, we argue that the definition of expertise in [6] is not suitable in recommender systems. The iterative refinement algorithm regards the capability of giving correct ratings as the expertise. However, it is intuitive that an expert in recommendation will not only give correct ratings, but also know large amount of recommendable items in his/her area. Actually, for the preference-based filtering, the capability of knowing recommendable items is more important than the capability of giving correct ratings, because the final task of the preference-based filtering is to recommend good items.. In this paper, we propose a recommendation algorithm to fuse the opinions from experts and ordinary people. A new definition of expertise is presented to measure users' knowledge of recommendable items in a certain area. By being assigned larger weights, the opinions from experts will be emphasized in the recommendation. A free parameter β is introduced to trade off between experts' and ordinary people's opinions. Another improvement to the iterative refinement algorithm in [6] is that we use a parameter α to trade off between the average value and the accumulative value when calculating users' expertise and items' qualities. By tuning α, we find the optimal is achieved when considering both the average value and the accumulative one. We simulate the proposed algorithm on a movie rating dataset from Moviepilot. The results show that our algorithm outperforms the conventional CF algorithm. When compared to the iterative refinement algorithm, the proposed algorithm provides higher Area-Under-the-Curve (AU C) but lower Mean-AveragePrecision (M AP ). Computing the different expertise carried by different users gives us the possibility of improving the recommendation accuracy by distinguishing them. The available literature has provide the expertise definition based on users' judgement capabilities. In this paper, we argue that users' judgement capabilities are not the key point to the recommendation, and we propose a new definition considering how many recommendable items the users know. Another contribution of this paper is that we trade off between the average value and accumulative value when computing expertise. The evaluation of our algorithm is done on Moviepilot dataset. P @5, P @10, M AP and AU C are calculated as the evaluation metrics. The results demonstrate that our algorithm outperforms the conventional CF algorithm, and is superior to the IR method with AU C metric.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O