The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Prefix Scan (or simply scan) is an operator that computes all the partial sums of a vector. A scan operation results in a vector where each element is the sum of the preceding elements in the original vector up to the corresponding position. Scan is a key operation in many relevant problems like sorting, lexical analysis, string comparison, image filtering among others. Although there are libraries...
Correlation clustering is a NP-hard problem, and for large graphs finding even just a good approximation of the optimal solution is a hard task. In previous articles we have suggested a contraction method and its divide and conquer variant. In this article we present several improvements of this method (preprocessing, quasi-parallelism, etc.) and prepare it for parallelism. Based on speed tests we...
The paper describes the concept of parallel graph processing system, which allows to develop architecture independent applications for processing large graphs. Also, the system allows the user to abstract from the implementation details of the graph storage format. This system can be used in such fast growing research fields as network science.
The extremely strict code length constraint is the main drawback of lowest density, maximum-distance separable (MDS) array codes of distance greater than 3. To break away from the status quo, we proposed in [5] a family of lowest density MDS array codes of (column) distance 4, called XI-Code. Compared with the previous alternatives, XI-Code has lower encoding and decoding complexities, and much looser...
Load balancing is a key aspect to face when implementing any parallel application for Graphic Processing Units (GPUs). It is particularly crucial if one considers that it strongly impacts on performance, power and energy efficiency of the whole application. Many different partitioning techniques have been proposed in the past to deal with either very regular workloads (static techniques) or with irregular...
A Suffix tree is a fundamental and versatile string data structure that is frequently used in important application areas such as text processing, information retrieval, and computational biology. Sequentially, the construction of suffix trees takes linear time, and optimal parallel algorithms exist only for the PRAM model. Recent works mostly target low core-count shared-memory implementations but...
This paper proposes a k-nearest neighbour search method inspired by grid space partitioning and the compact-trie structure. A compact trie structure, and a k-nearest neighbour search strategy are presented. Then, a k-nearest neighbour search performance comparison is carried out against two well-known methods, using one million two-dimensional spatial points and finding up to 1000 nearest neighbours...
Ensuring software security is essential for developing a reliable software. A software can suffer from security problems due to the weakness in code constructs during software development. Our goal is to relate software security with different code constructs so that developers can be aware very early of their coding weaknesses that might be related to a software vulnerability. In this study, we chose...
Python is a high level language that is used by scientists for numeric computations. However, the performance of the language can be a hindrance when scaling to larger data sets, requiring some operations to be rewritten in a lower level language. To address this problem, we propose two libraries to allow numeric Python code to be optimized incrementally, requiring minimal changes. Here we describe...
3D-stacking technology has enabled the option of embedding a large DRAM cache onto the processor. Since the DRAM cache can be orders of magnitude larger than a conventional SRAM cache, the size of its cache tags can also be large. Recent works have proposed storing these tags in the stacked DRAM array itself. However, this increases the complexity of a DRAM cache request, which now translates into...
The systematic polar codes under successive cancellation list (SCL) decoding suffers from very high time and space complexity when list size becomes larger. Aimed at getting the tradeoff between error performance and algorithm complexity, a practical CRCs-ADSCL(Adaptive SCL) decoding scheme is proposed for systematic polar codes, in which CRC values will be held by the bit-pair arrays in the decoding...
In this work, the direction finding of coherently distributed (CD) sources using a uniform linear array (ULA) is investigated. Conventional DSPE algorithm for localization of CD sources requires an extensive two-dimensional search of nominal DOAs and angular spreads. The proposed algorithm exploits the propagator, which is a linear operator that can be easily estimated from the received data, to identify...
As everyone knows vulnerability detection is a very difficult and time consuming work, so taking advantage of the unlabeled data sufficiently is needed and helpful. According the above reality, in this paper a method is proposed to predict buffer overflow based on semi-supervised learning. We first employ Antlr to extract AST from C/C++ source files, then according to the 22 buffer overflow attributes...
Graphs are ubiquitous and are the best data structure for representing linked data because of their flexibility, scalability, and power to deal with complexity. Storing big graphs in graph databases leads to difficult computation and increased time complexity. The best alternative is to use inmemory representations such as compact data structures. They compress the graph sufficiently such that it...
A sorting algorithm is one that puts elements of a list in a certain order. It makes easy searching and locating the information. The most-used orders are numerical order and lexicographical order. An efficient sorting algorithm is that takes less time and space complexity. In this paper I make contrastive analysis of bubble sort and merge sort and tried to show why required some new approach to get...
Owing to the significance of combinatorial search strategies both for academia and industry, the introduction of new techniques is a fast growing research field these days. These strategies have really taken different forms ranging from simple to complex strategies in order to solve all forms of combinatorial problems. Nonetheless, despite the kind of problem these approaches solve, they are prone...
Connecting points to the nearest point belonging to a set of lines is an interesting problem that arises in many practical problems, especially Infrastructure Design Problems. In this paper an algorithm is presented for this problem. This algorithm is based on enumeration. To test the performance we define and explain several heuristic approaches. The algorithms is then, in comparison to the other...
The finite field multipliers consuming high-throughput rate and low-latency having grown excessive attention in recent cryptographic systems, and coding theory but such multipliers above Galois field GF(2m) for National institute standard technology (NIST) pentanomials are not so plentiful. We introduce two pairs of low latency and high throughput bit-parallel and digit-serial systolic multipliers...
In this paper, the computational spectral imaging system is reexamined, and the most time-consuming module, namely the two-step iterative shrinkage/thresholding (TwIST) reconstruction, is accelerated by GPU. The acceleration can be roughly divided into two level: 1) data parallelization and 2)operation parallelization. Data parallelization: by discovering that the observation data array in computational...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.