The information contained in a paper by Rönsch adn Strauss on the performance of sorting algorithms on vector computers is completed with performance data of the IBM 3090 on sorting. For scalar sorting, the IBM 3...
详细信息
The information contained in a paper by Rönsch adn Strauss on the performance of sorting algorithms on vector computers is completed with performance data of the IBM 3090 on sorting. For scalar sorting, the IBM 3090 turns out to be faster than all the machines considered by Rönnsch and Strauss. Due to this high scalar speed, FORTRAN-coded vector sorting is never more efficient than scalar sorting on the IBM 3090, at least for the vector sorting algorithms considered. On the other hand, for optimized library routines the IBM 3090 outperforms the CRAY X-MP (but not the AMDAHL 1200) at most vector lenghts.
With the rising demand for information technology comes an increase in energy consumption to power it. Namely, cloud computing is constantly growing, in part due to a rising number of devices using the cloud to provid...
详细信息
ISBN:
(纸本)9781665458382
With the rising demand for information technology comes an increase in energy consumption to power it. Namely, cloud computing is constantly growing, in part due to a rising number of devices using the cloud to provide certain functionality. This growth leads to an increase in energy consumption in data centers and is estimated to climb to over 1PWh in 2030. Hardware manufacturers counter the rising demand for energy in cloud data centers by providing techniques to make servers more energy-efficient. However, the advances cannot fully compensate for the growth. To further increase energy efficiency, software needs to be addressed as well but is often neglected by the developers. In this paper, we compare six sorting algorithms, a common task in most programs, against each other in terms of energy efficiency to allow developers to select the best solution to their problem. We selected well-known algorithms in two variants, and two implementation languages, C and Python. We ran each algorithm on two, out of four, state-of-the-art server systems with different CPUs.
sorting is one of the fundamental operations in computer science, and many sequential and parallel algorithms have been proposed in the literature. Swap-based sorting algorithms are one category of sorting algorithms ...
详细信息
ISBN:
(纸本)9783030634612;9783030634605
sorting is one of the fundamental operations in computer science, and many sequential and parallel algorithms have been proposed in the literature. Swap-based sorting algorithms are one category of sorting algorithms where elements are swapped repeatedly to achieve the desired order. Since these algorithms are widely used in practice, their (functional) correctness, i.e., proving sortedness and permutation properties, is of utmost importance. However, proving the permutation property using automated program verifiers is much more challenging as the formal definition of this property involves existential quantifiers. In this paper, we propose a generic pattern to verify the permutation property for any sequential and parallel swap-based sorting algorithm automatically. To demonstrate our approach, we use VerCors, a verification tool based on separation logic for concurrent and parallel programs, to verify the permutation property of bubble sort, selection sort, insertion sort, parallel odd-even transposition sort, quick sort, two in-place merge sorts and TimSort for any arbitrary size of input.
The Data Structure subject is an essential Computer Science subject. sorting algorithms are important topics in Data Structure where students are expected to learn how various sorting algorithms work and their time co...
详细信息
ISBN:
(数字)9781665453653
ISBN:
(纸本)9781665453653
The Data Structure subject is an essential Computer Science subject. sorting algorithms are important topics in Data Structure where students are expected to learn how various sorting algorithms work and their time complexities. Some sorting algorithms may easily cause confusions to novice students, as they usually find it challenging to understand and memorize these algorithms. There is a need to find a means of technology enhanced learning to improve the learning process of students. Game based learning is a pedagogy where students learn through game playing. This mode of learning could effectively engage students to focus on the learning topics more efficiently. The study uses a sorting algorithm serious game to allow students to learn four types of sorting algorithms: Bubble sort, Selection sort, Insertion sort and Quick sort. The students would carry out self-directed learning lecture materials in the serious game, followed by refreshing their learning using. a visualizer, and lastly reInforce theIr learnIng through playing a sorting serious game. Two groups of students participate in the experiment, a control group and an experiment group. The experIment group that sues the sorting algorithm games achieves better results, compared to the control group who learns without the serious. game. Game-based learning provides a posItIve learnIng experience to the students that could improve the learning effectIveness. Coupled wIth technology such as VR headsets as a future upgrade, it would be a niche factor that would create an immersive learning experience to engage the students and enhance their learning in a virtual environment.
Recent increased interest in computational thinking poses an important question to researchers: What are the best ways to teach fundamental computing concepts to students? Visualization is suggested as one way of supp...
详细信息
Recent increased interest in computational thinking poses an important question to researchers: What are the best ways to teach fundamental computing concepts to students? Visualization is suggested as one way of supporting student learning. This mixed-method study aimed to (i) examine the effect of instruction in which students constructed visualizations on students' programming achievement and students' attitudes toward computer programming, and (ii) explore how this kind of instruction supports students' learning according to their self-reported experiences in the course. The study was conducted with 58 pre-service teachers who were enrolled in their second programming class. They expect to teach information technology and computing-related courses at the primary and secondary levels. An embedded experimental model was utilized as a research design. Students in the experimental group were given instruction that required students to construct visualizations related to sorting, whereas students in the control group viewed pre-made visualizations. After the instructional intervention, eight students from each group were selected for semi-structured interviews. The results showed that the intervention based on visualization construction resulted in significantly better acquisition of sorting concepts. However, there was no significant difference between the groups with respect to students' attitudes toward computer programming. Qualitative data analysis indicated that students in the experimental group constructed necessary abstractions through their engagement in visualization construction activities. The authors of this study argue that the students' active engagement in the visualization construction activities explains only one side of students' success. The other side can be explained through the instructional approach, constructionism in this case, used to design instruction. The conclusions and implications of this study can be used by researchers and instruct
Fault tolerance techniques often presume that the end-user computation must complete flawlessly. Though such strict correctness is natural and easy to explain, it's increasingly unaffordable for extreme-scale comp...
详细信息
ISBN:
(纸本)9781479922338
Fault tolerance techniques often presume that the end-user computation must complete flawlessly. Though such strict correctness is natural and easy to explain, it's increasingly unaffordable for extreme-scale computations, and blind to possible preferences among errors, should they prove inevitable. In a case study on traditional sorting algorithms, we present explorations of a criticality measure defined over expected fault damage rather than probability of correctness. We discover novel 'error structure' in even the most familiar algorithms, and observe that different plausible error measures can qualitatively alter criticality relationships, suggesting the importance of explicit error measures and criticality in the wise deployment of the limited spare resources likely to be available in future extreme-scale computers.
In the context of constructive synthesis of sorting algorithms, starting from the specification of the problem (input and output conditions), the proof of existence of a sorted tuple is performed inductively and we de...
详细信息
ISBN:
(纸本)9780769546308
In the context of constructive synthesis of sorting algorithms, starting from the specification of the problem (input and output conditions), the proof of existence of a sorted tuple is performed inductively and we design, implement, and experiment with different proof techniques: First we use a back-chaining mechanism similar to a Prolog engine for first order logic, in which meta-variables are used for finding the existential witnesses. In order to overcome the search space explosion, we introduce various specific prove-solve methods for the theory of tuples. For instance, the equivalence relation on tuples "have same elements" can be treated using a normal form based on multisets - this leads to a very efficient inference rule for rewriting. When reasoning about sorting, we also have an ordering relation between elements. We extend this to an ordering between an element and a tuple, and even between tuples. Ordering relations create specific problems in Prolog style reasoning, because of transitivity and reflexivity. We demonstrate that ordering can be treated very efficiently by decomposing atomic statements into simpler ones (containing only symbols instead of terms), both for goals (backward reasoning) as well as for assumptions (forward reasoning). This leads to an interesting combination of backward and forward inferences which goes beyond and complements Prolog style reasoning. Finally, we develop a solving mechanism for finding sorted tuples, which performs the proof more efficiently, by combining relatively simple inference rules and small searches with goal directed solving rules. The techniques are implemented in the Theorema system and are able to produce automatically proofs and algorithms for various problems: Insertion Sort, Insertion, Merge Sort, and Merge. Besides the special proof techniques, this work also gives useful hints about finding appropriate induction principles for tuples, as well as for the construction of appropriate collections of p
With the advent of mobile application development a new software quality concern - energy consumption - was introduced. For mobile software developers knowledge about software and algorithm design choices and their im...
详细信息
ISBN:
(纸本)9781450372831
With the advent of mobile application development a new software quality concern - energy consumption - was introduced. For mobile software developers knowledge about software and algorithm design choices and their implications on energy consumption is crucial. However, software developers either lack this knowledge or tools to support them in estimating the energy consumption of their applications and therefore are unable to reflect on their design choices. In this empirical study we examine the energy consumption of 12 sorting algorithms and the resulting energy impact when used with different data types. We propose a methodology to obtain energy readings and relate them to application execution traces. Our results show that the choice of data type together with algorithm design can have significant impact on the energy profile of an application.
There are certainly many sorting algorithms in this modern world of Computers, most of which work in second-order time and some in linearithmic time, but none have achieved more than that. There is none. However, is i...
详细信息
We propose a novel computational model for GPU. Known parallel computational models such as the PRAM model are not appropriate for evaluating GPU algorithms. Our model, called AGPU, abstracts the essence of current GP...
详细信息
ISBN:
(纸本)9781479941162
We propose a novel computational model for GPU. Known parallel computational models such as the PRAM model are not appropriate for evaluating GPU algorithms. Our model, called AGPU, abstracts the essence of current GPU architectures such as global and shared memory, memory coalescing and bank conflicts. We can therefore evaluate asymptotic behavior of GPU algorithms more accurately than known models and we can develop algorithms that are efficient on many real architectures. As a showcase, we first analyze known comparison-based sorting algorithms using the AGPU model and show that they are not I/O optimal, that is, the number of global memory accesses is more than necessary. Then we propose a new algorithm which uses an asymptotically optimal number of global memory accesses and whose time complexity is also nearly optimal.
暂无评论