- Research Article
- 10.1287/opre.1110.0925
Contributors
- Feb 01, 2011
- Operations Research
- Sandro Bosio
Contributors
As an object-oriented dynamic scripting language, Python has been widely applied in scientific computation, image processing and network communication fields, etc.However, there is no enough attention paid to it in automated test.A Python-based client/server auto-dial testing mode, which is successfully applied in actual wireless network optimization testing, is introduced.The actual application shows that this mode brings flexible and high-efficiency features of Python programming into full play and significantly improves the efficiency of testing system.
Contributors
Contributors
Vispark: GPU-Accelerated Distributed Visual Computing Using Spark
With the growing need of big-data processing in diverse application domains, MapReduce (e.g., Hadoop) has become one of the standard computing paradigms for large-scale computing on a cluster system. Despite its popularity, the current MapReduce framework suffers from inflexibility and inefficiency inherent to its programming model and system architecture. In order to address these problems, we propose Vispark, a novel extension of Spark for GPU-accelerated MapReduce processing on array-based scientific computing and image processing tasks. Vispark provides an easy-to-use, Python-like high-level language syntax and a novel data abstraction for MapReduce programming on a GPU cluster system. Vispark introduces a programming abstraction for accessing neighbor data in the mapper function, which greatly simplifies many image processing tasks using MapReduce by reducing memory footprints and bypassing the reduce stage. Vispark provides socket-based halo communication that synchronizes between data partitions transparently from the users, which is necessary for many scientific computing problems in distributed systems. Vispark also provides domain-specific functions and language supports specifically designed for high-performance computing and image processing applications. We demonstrate the performance of our prototype system on several visual computing tasks, such as image processing, volume rendering, K-means clustering, and heat transfer simulation.
Read moreIEEE Access Special Section Editorial: Biologically Inspired Image Processing Challenges and Future Directions
Human kind is exposed to large amounts of data. According to statistics, more than 80% of information received by humans comes from the visual system. Therefore, image information processing is not only an important research topic but also a challenging task. The unique information processing mechanism of the human visual system provides it with fast, accurate, and efficient image processing capabilities. At present, many advanced image analysis and processing techniques have been widely used in image communication, geographic information systems, medical image analysis, and virtual reality. However, there is still a large gap between these technologies and the human visual system. Therefore, building an image system research mechanism based on the biological vision system is an attractive but difficult target. Although it is a challenge, it can also be considered as an opportunity which utilizes biologically inspired ideas. Meanwhile, through the integration of neural biology, biological perception mechanisms, and computer science and mathematical science, related research can bridge biological vision and computer vision. Finally, the biologically inspired image analysis and processing system is expected to be built on the basis of further consideration of the learning mechanism of the human brain.
Read moreIncorporating an object-oriented programming language into the first year of a software engineering education
Describes how the object-oriented implementation language C++ has been incorporated into the first year of the software engineering curriculum in the School of Computer Science and Computer Engineering at La Trobe University. The reasons for choosing an object-oriented language are discussed, as well as the reasons for selecting C++ in particular. A revised course structure is presented that is based on an exercise in evaluating both the strengths and weaknesses of C++ as a first-year language. The resulting course structure provides a better learning framework for software engineering students.
Read moreAutomatic synthesis of high performance mathematical programs
The evolution of computing platforms is at a historic inflection point. CPU frequency has stalled (in 2004 at about 3GHz), which means future performance gains will only be achievable due to increasing parallelism in the form of multiple cores and vector instructions sets. The impact on the developers of high performance libraries implementing important mathematical functionality such as matrix-multiplication, linear transforms, and many others is profound. Traditionally, an algorithm developer ensures correctness and minimizes the operations count. A software engineer then performs the actual implementation (in a compilable language like C) and performance optimization. However, on modern platforms, two implementations with the exact same operations count may differ by 10, 100, or even 1000x in runtime: instead, the structure of an algorithm becomes a major factor and determines how well it can be parallelized, vectorized, and matched to the memory hierarchy. Ideally, a compiler would perform all these tasks, but the current state of knowledge suggest that this may be inherently impossible for many types of code. The reason may be two-fold. First, many transformations, in particular for parallelism, require domain-knowledge that the compiler simply does possess. Second, often there are simply too many choices of transformations that the compiler cannot or does not know how to explore.As a consequence, the development of high performance libraries for mathematical functions becomes extraordinarily difficult, since the developer needs to have a good understanding of available algorithms, the target microarchitecture, and implementation techniques such as threading and vector instruction set such as SSE on Intel. To make things worse, optimal code is often platform specific, that is, code that runs very fast on one platform can be suboptimal on another. This means that if highest performance is desired, library developers are constantly forced to reimplement and reoptimize the same functionality. A commercial example following this model are Intel's IPP and MKL libraries, which provide a very broad set of mathematical functions needed in scientific computing, signal and image processing, communication, and security applications.An attractive solution would be to automate the library development, which means let the computer write the code and rewrite it for every new platforms. There are several challenges involved with this proposal. First, for a given desired function (such as multiplying matrices or computing a discrete Fourier transform), the existing algorithm knowledge has to be encoded into a form or language that is suitable for computer representation. Second, structural algorithm transformations for parallelism or locality that are typically performed by the programmer also have to be encoded into this form. Third, available choices have to be explored systematically and efficiently. As we will show for a specific domain, techniques from symbolic computation provide the answers.In this talk we present Spiral [6, 1], a domain-specific program generation system for important mathematical functionality such as linear transforms, filters, Viterbi decoders, and basic linear algebra routines. Spiral completely replaces the human programmer. For a desired function, Spiral generates alternative algorithms, optimizes them, compiles them into programs, and intelligently' searches for the best match to the computing platform. The main idea behind Spiral is a mathematical, symbolic, declarative, domain-specific language to represent algorithms and the use of rewriting systems to generate and structurally optimize algorithms at a high level of abstraction. Optimization includes parallelization, vectorization, and locality improvement for the memory hierarchy [3, 4, 5, 7, 2]. Experimental results show that the code generated by Spiral competes with, and sometimes outperforms, the best available human-written code.
Read moreSASA: A Scalable and Automatic Stencil Acceleration Framework for Optimized Hybrid Spatial and Temporal Parallelism on HBM-based FPGAs
Stencil computation is one of the fundamental computing patterns in many application domains such as scientific computing and image processing. While there are promising studies that accelerate stencils on FPGAs, there lacks an automated acceleration framework to systematically explore both spatial and temporal parallelisms for iterative stencils that could be either computation-bound or memory-bound. In this article, we present SASA, a scalable and automatic stencil acceleration framework on modern HBM-based FPGAs. SASA takes the high-level stencil DSL and FPGA platform as inputs, automatically exploits the best spatial and temporal parallelism configuration based on our accurate analytical model, and generates the optimized FPGA design with the best parallelism configuration in TAPA high-level synthesis C++ as well as its corresponding host code. Compared to state-of-the-art automatic stencil acceleration framework SODA that only exploits temporal parallelism, SASA achieves an average speedup of 3.41× and up to 15.73× speedup on the HBM-based Xilinx Alveo U280 FPGA board for a wide range of stencil kernels.
Read moreParallel/High-Performance Object-Oriented Scientific Computing
While object-oriented programming has been embraced in industry, particularly in the form of C++, Java, and Python, its acceptance by the parallel scientific programming community is for various reasons incomplete. Nonetheless, various factors practically dictate the use of language features that provide higher level abstractions than FORTRAN or C, including increasingly complex numerical algorithms, application requirements, and hardware (e.g. deep memory hierarchies, rapidly increasing numbers of processors, multi-core processors, communication, and I/O, and the need for user-level fault tolerance). This workshop series seeks to bring together practitioners and researchers in this growing field to 'compare notes' on their work. The emphasis is on identifying specific problems impeding greater acceptance and widespread use of object-oriented programming in scientific computing; proposed and implemented solutions to these problems; and new or novel frameworks, approaches, techniques, or idioms for object-oriented scientific and/or parallel computing. Presentations of work in progress are welcome.
Read moreMulti-disciplinary integration of engineering courses based on API-programming for CAD/CAE
A method of a complex training, based on a multi-disciplinary integration is developing. Thus is, the interdisciplinary blends, including following branches: Math and Physics, Engineering Mechanics, Computer Science (Object-oriented and API programming), CAD/CAE-technology are used. Object-oriented programming, using Visual Studio C++ (MFC, ATL) and API-programming for SolidWorks have a role of the integrating factors both as a science tool and as an engineering toolbox.
Read moreJaMake: A Java Compiler Environment
A language of choice for general-purpose programming, Java is quickly becoming popular in more specialized areas, such as scientific computing. However, even though the compilation technologies have significantly improved Java execution, performance is still the main obstacle to the use of Java for scientific applications. Although good Java Virtual Machine implementations are approaching the performance of Fortran on similarly-coded applications, significant performance problems remain because of the power of the object-oriented programming paradigm. Our experiments show that full use of polymorphic, objectoriented programming can result in performance penalties of up to two orders of magnitude. To address this performance difficulty, the authors have developed the JaMake Java transformation system, which uses advanced program analysis and transformation techniques to allow programmers to create extensible and maintainable programs using objectoriented design, while generating Java programs whose performance approaches that of hand-optimized, Fortran-style code. Experiments on our collection of object-oriented scientific programs have shown that transformation by JaMake can yield speed-ups of a factor of ten or more, bringing the performance of these object-oriented programs to within 75% of hand-optimized, Fortran-style code.
Read moreThe Study on QoS in the Networked Test System
The data transmission is not controllable within the networked test system, which would result in poor real-time performance and low data transmission reliability. Those problems would lead to the poor test efficiency and even chaos states in the test procedure because of the loss of critical data. This paper proposed a congestion management method named PQ+WRR, which can effectively alleviate the above problems.
Read moreThe Video Streaming at Multihop Communication on WACNet (Wireless Ad Hoc Community Network) Test System for ITS Inter Vehicle Communications
We developed the WACNet (wireless ad hoc community network) test system based on IEEE 802.11g and ESPAR antenna. ESPAR antenna is controlled to set sector beam or omni beam due to the several types of packets at the communication situation (Tx and Rx). We can choose the data transmission rate to be adaptive or fixed among the duration through 54 Mbps to 1 Mbps for the purpose of experiment. Routing protocol supporting multihop communication is embedded with the consideration of microwave propagation condition to improve total throughput, total error rate and so on rather than the original protocol. In this paper, we show the structure and wireless communication characteristics and the performance of video streaming at multihop communication with camera and codec connected to WACNet test system on the mobile experimental cars for ITS inter vehicle communications
Read moreResearch on Networked Airborne Testing System Architecture Based on DDS
Along with the rapid development of the magnitude of parameters collected in flight test, the networked airborne test system has gradually replaced the traditional test system based on PCM (Pulse Code Modulation) architecture to meet the requirement of flight test. The architecture, characteristics and technical status of NATS (Networked Airborne Testing System) are analyzed. It is pointed out that with the development of Joint Test, Air-ground integrated collaborative test and the urgent needs of users to shorten the flight test period, existing NATS needs to improve its scalability, real-time computing power, compatibility and reliability of heterogeneous systems. A new NATS architecture based on DDS (Data Distribute System) is proposed to address these issues. The advantages of this architecture are described, and the key problems and solutions in the application of this technology are studied. It provides a new idea for the development of Airborne Testing System in the future.KeywordsFlight testNetwork airborne testing systemDDS technologyArchitecture of test system
Read moreA Web-Based Framework for Distributed Medical Image Processing Using Image Markup Language (IML)
Image processing plays an important role in computer science, making complex image manipulation more feasible. It can be used either in a general manner or in specific domains such as for medical purposes. With the availability of the internet, image processing applications can be distributed to be available for different people, regardless of their geographical location. Although there are a handful of professional image processing solutions available, there is no well-designed framework that can be simply distributed and customized to be used in specific areas. Other than image processing tools, image storage and retrieval is another issue that needs to be addressed. This research proposes a general platform that can be used for implementing a distributed image processing framework. It provides solutions for storing and retrieving images, particularly large-size ones as well as an approach for executing image processing functions that are physically located anywhere within the distributed system.
Read moreProceedings of the Third C* Conference on Computer Science and Software Engineering
The C* Conference on Computer Science and Software Engineering (C3S2E) was established in 2008. C3S2E 2010 is the third annual meeting in the C3S2E conference series and is held in Montréal, Québec, Canada, during May 19-20, 2010. The conference aims to address the need of the academic community in computer science and software engineering. It brings together academics, government and industry professionals to discuss recent progress and challenges in a broad range of areas in the field of computer science and software engineering such as algorithms and theory, artificial intelligence, bioinformatics, computer architecture, computer graphics, computer security, computer vision, data mining, databases, image processing, information retrieval, machine learning, as well as software engineering. C3S2E 2010 also serves as a platform for theoreticians and practitioners to exchange their original research ideas on academic or application aspects of computing and engineering of software systems, present their new findings on theoretical or practical aspects of computer science and software engineering, share their experiences on integrating new technologies into products and applications, discuss their work on applying computing and software engineering to real-life situations, describe their development and operations of challenging computing related systems, and identify unsolved challenges. Although it is the third time C3S2E is held, this comprehensive conference has grown from a Canadian conference into an international conference. For C3S2E 2010, we continue to keep our tradition for inviting international experts in various areas of computer science and software engineering to join our team of international program committee. As a result, our Program Committee consists of professionals from different parts of the world including Australia, Canada, Germany, Hong Kong, Italy, Japan, Portugal, South Korea, Turkey, UAE, and UK. This committee has done an excellent job in finishing the single-blind review and on-line double-blind debate processes in record time. On average, about 90% of reviews were submitted by the due date and about 3.67 reviews were received for each paper. In terms of submissions, we have attracted many high-quality papers submitted by authors globally. The paper selection process was thorough and competitive. On average, each paper was refereed by at least three reviewers, and about 18% of submissions were accepted as full research papers. This year, we have an intensive program that spans over two days. In addition to research papers and student posters, we also include position papers, which allow authors to give their opinions and vision on exploring new concepts and research directions.
Read moreAnomaly Detection for Early Warning in Object-oriented Programming Course
As one mainstream of current software development, Object-oriented programming has become one key course for undergraduate students in Computer Science. Since Object-oriented concepts are difficult to understand for students, small programming exercises are used to train and help the students, and the study performance is evaluated based on the quality of the submitted source code. The common practice of code assess-ment in programming courses is checking whether the submitted projects pass carefully-designed test cases. However, even some projects pass all test cases, they may have bad software design and do not use the knowledge of Object-oriented programming well, especially in the early stage of courses. Therefore, we propose an anomaly detection approach for early warning in Object-oriented programming courses, which can automatically find the abnormal application of Object-oriented knowledge. In our approach, we conduct static analysis on the code submitted by students. Typical Objected-oriented metrics are extracted, and students are divided into two groups by K-means clustering: being good at Object-objected knowledge or not, and finally detect anomalous students based on the distance from cluster centers. We evaluate our approach on the realistic data sets collected from our Object-oriented programming course, and experimental results show the effectiveness of our method.
Read more