1,553 research outputs found
Recommended from our members
CHERIvoke: Characterising pointer revocation using CHERI capabilities for temporal memory safety
A lack of temporal safety in low-level languages has led to an epidemic of use-after-free exploits. These have surpassed in number and severity even the infamous buffer-overflow exploits violating spatial safety. Capability addressing can directly enforce spatial safety for the C language by enforcing bounds on pointers and by rendering pointers unforgeable. Nevertheless, an efficient solution for strong temporal memory safety remains elusive.
CHERI is an architectural extension to provide hardware capability addressing that is seeing significant commercial and open- source interest. We show that CHERI capabilities can be used as a foundation to enable low-cost heap temporal safety by facilitating out-of-date pointer revocation, as capabilities enable precise and efficient identification and invalidation of pointers, even when using unsafe languages such as C. We develop CHERIvoke, a technique for deterministic and fast sweeping revocation to enforce temporal safety on CHERI systems. CHERIvoke quarantines freed data before periodically using a small shadow map to revoke all dangling pointers in a single sweep of memory, and provides a tunable trade-off between performance and heap growth. We evaluate the performance of such a system using high-performance x86 processors, and further analytically examine its primary overheads. When configured with a heap-size overhead of 25%, we find that CHERIvoke achieves an average execution-time overhead of under 5%, far below the overheads associated with traditional garbage collection, revocation, or page-table systems.EP/K026399/1, EP/P020011/1, EP/K008528/
Write-rationing garbage collection for hybrid memories
Emerging Non-Volatile Memory (NVM) technologies offer high capacity and energy efficiency compared to DRAM, but suffer from limited write endurance and longer latencies. Prior work seeks the best of both technologies by combining DRAM and NVM in hybrid memories to attain low latency, high capacity, energy efficiency, and durability. Coarse-grained hardware and OS optimizations then spread writes out (wear-leveling) and place highly mutated pages in DRAM to extend NVM lifetimes. Unfortunately even with these coarse-grained methods, popular Java applications exact impractical NVM lifetimes of 4 years or less.
This paper shows how to make hybrid memories practical, without changing the programming model, by enhancing garbage collection in managed language runtimes. We find object write behaviors offer two opportunities: (1) 70% of writes occur to newly allocated objects, and (2) 2% of objects capture 81% of writes to mature objects. We introduce writerationing garbage collectors that exploit these fine-grained behaviors. They extend NVM lifetimes by placing highly mutated objects in DRAM and read-mostly objects in NVM. We implement two such systems. (1) Kingsguard-nursery places new allocation in DRAM and survivors in NVM, reducing NVM writes by 5x versus NVM only with wear-leveling. (2) Kingsguard-writers (KG-W) places nursery objects in DRAM and survivors in a DRAM observer space. It monitors all mature object writes and moves unwritten mature objects from DRAM to NVM. Because most mature objects are unwritten, KG-W exploits NVM capacity while increasing NVM lifetimes by 11x. It reduces the energy-delay product by 32% over DRAM-only and 29% over NVM-only. This work opens up new avenues for making hybrid memories practical
Runtime prediction of real programs on real machines
Algorithms are more and more made available as part of libraries or tool kits. For a user of such a library statements of asymptotic running times are almost meaningless as he has no way to estimate the constants involved. To choose the right algorithm for the targeted problem size and the available hardware, knowledge about these constants is important. Methods to determine the constants based on regression analysis or operation counting are not practicable in the general case due to inaccuracy and costs respectively. We present a new general method to determine the implementation and hardware specific running time constants for combinatorial algorithms. This method requires no changes of the implementation of the investigated algorithm and is applicable to a wide range of of programming languages. Only some additional code is necessary. The determined constants are correct within a constant factor which depends only on the hardware platform. As an example the constants of an implementation of a hierarchy of algorithms and data structures are determined. The hierarchy consists of an algorithm for the maximum weighted bipartite matching problem (MWBM), Dijkstra's algorithm, a Fibonacci heap and a graph representation based on adjacency lists. ion frequencies are at most 50 \% on the tested hardware platforms
Subheap-Augmented Garbage Collection
Automated memory management avoids the tedium and danger of manual techniques. However, as no programmer input is required, no widely available interface exists to permit principled control over sometimes unacceptable performance costs. This dissertation explores the idea that performance-oriented languages should give programmers greater control over where and when the garbage collector (GC) expends effort. We describe an interface and implementation to expose heap partitioning and collection decisions without compromising type safety. We show that our interface allows the programmer to encode a form of reference counting using Hayes\u27 notion of key objects. Preliminary experimental data suggests that our proposed mechanism can avoid high overheads suffered by tracing collectors in some scenarios, especially with tight heaps. However, for other applications, the costs of applying subheaps---in human effort and runtime overheads---remain daunting
Garbage Collection of Linked Data Structures: An Example in a Network Oriented Database Management System
A unified view of the numerous existing algorithms for performing garbage collection of linked data structure has been presented. An implementation of a garbage collection tool in a network oriented database management system has been described
Optimization of blasting parameters in opencast mines
Drilling and blasting are the major unit operations in opencast mining. Inspite of the best efforts to introduce mechanization in the opencast mines, blasting continue to dominate the production. Therefore to cut down the cost of production optimal fragmentation from properly designed blasting pattern has to be achieved. Proper adoption of drilling and blasting can contribute significantly towards profitability and therefore optimization of these parameters is essential.
Introduction
Rock breaking by drilling and blasting is the first phase of the production cycle in most of the mining operations. Optimization of this operation is very important as the fragmentation obtained thereby affects the cost of the entire gamut of interrelated mining activities, such as drilling, blasting, loading, hauling, crushing and to some extent grinding. Optimization of rock breaking by drilling and blasting is sometimes understood to mean minimum cost in the implementation of these two individual operations. However, a minimum cost for breaking rock may not be in the best interest of the overall mining system. A little more money spent in the rock-breaking operation can be recovered later from the system and the aim of the coordinator of the mining work should be to achieve a minimum combined cost of drilling, blasting, loading, hauling, crushing and grinding. Only a “balance sheet” of total cost of the full gamut of mining operations vis-à-vis production achieved can establish whether the very first phase- rock breaking- was “optimum” financially; leaving aside factors of human safety. An optimum blast is also associated with the most efficient utilization of blasting energy in the rock- breaking process, reducing blasting cost through less explosive consumption and less wastage of explosive energy in blasting, less throw of materials, and reduction of blast vibration resulting in greater degrees of safety and stability to the nearby structures.
Development of a Blast Optimization Model
Selection of proper explosive in any blasting round is an important aspect of optimum blast design. Basic parameters include VOD of explosive (m/s), Density (g/cc), Characteristic impedance, Energy output (cal/gm), and Explosive type (ANFO, Slurry, Emulsion etc.). However, all these parameters can not be taken for optimizing the blasting method successfully. Some of the parameters are taken for minimizing the blasting cost. These cost reduction and optimum blast design parameter will give an economical result. The parameters are
i. Drill hole diameter,
ii. Powder factor (desired),
iii. Cost of explosive,
iv. Numbers of holes required to blast.
Methodology
The study of the various parameters of blasting suggests that the powder factor should be constant as per the requirement. The number of holes desired as per the explosive, the drill ihole diameter as available and the cost of explosive are kept as input. The spacing, bench height, burden, charge per hole as depending on the previous parameters can be calculated. From the different input and calculated parameters the total cost of the method is calculated and the least expensive method is selected as the optimized model. Blasting related information were collected from three different mines of Mahanadi Coalfields Ltd.(MCL) for implementation of the optimization model. A program was designed using visual basic on .net platform taking the above parameters into consideration to select the optimized model. It was observed that the program gives satisfactory results. A sample output of the program is as presented below:
Conclusion
The blast optimization model has been developed with simple methodologies which can be adopted by the mining industry to compare the explosive costs and achieve better blasting results and. The model developed is a user friendly one, since by keeping the powder factor and number of choices of explosives available as constant and by varying the parameters like drill hole diameter, number of holes and cost of explosives one can compare the explosive performance and accordingly take a decision to select the proper type of explosives for blasting. It may be noted, that the model has been developed based on case studies of three different mines of MCL, and it can be modified with collection of information from a large number of mines.
References
Nanda, N.K. (2003), “Optimization of mine production system through operation research techniques”, 19 th World Mining Congress, New Delhi, November, pp.583-595.
Pal Roy, P. (2005), “Terms and parameters influencing mine and ground excavations”, Rock blasting effects and operations, pp. 17-22
Algoritam za zbrinjavanje memorije s označavanjem i smanjenim oslobađanjem
In this paper two simple improvements over traditional mark-sweep collector are proposed. The core idea is placing small objects of the same type in buckets. The buckets are organised in such way to eliminate the internal fragmentation, sweeping, and freeing inside them. The measured improvement of garbage collection time over traditional mark-sweep is 19%. Another proposed improvement is more general and is applicable to other garbage collection algorithms as well. It uses heuristics to control the heap growth. The regularities in behaviour of objects of particular types are used to determine whether the collection should be performed or avoided in favour of immediate heap expansion. The heap expansion algorithm reduces garbage collection time over traditional mark-sweep for 49% while keeping the heap size approximately the same.U ovom članku opisana su dva jednostavna poboljšanja algoritma označi-oslobodi. Osnovna ideja jest smještanje malih objekata istog tipa u pretince. Pretinci su organizirani tako da se u njima ne pojavljuje unutarnja fragmentacija, a uklanja se i potreba za oslobađanjem blokova zauzetih nedohvatljivim objektima. Vrijeme provedeno u zbrinjavanju manje je za 19% u odnosu na klasični algoritam označi-oslobodi. Drugo poboljšanje je općenitije i moguće ga je primijeniti i na druge algoritme za zbrinjavanje memorije. U njemu rastom gomile upravlja heuristički algoritam koji koristi pravilnosti u ponašanju objekata različitih tipova. Na temelju njih, algoritam odlučuje hoće li gomila biti zbrinuta ili odmah proširena. Heuristička inačica algoritma smanjuje vrijeme provedeno u zbrinjavanju u odnosu na tradicionalni algoritam označi-oslobodi za 49%, a da pri tome zahtijeva približno istu količinu memorije
Power-efficient data management for dynamic applications
In recent years, the semiconductor industry has turned its focus towards heterogeneous multi-processor platforms. They are an economically viable solution for coping with the growing setup and manufacturing cost of silicon systems. Furthermore, their inherent flexibility also perfectly supports the emerging market of interactive, mobile data and content services. The platform's performance and energy depend largely on how well the data-dominated services are mapped on the memory subsystem. A crucial aspect thereby is how efficient data is transferred between the different memory layers. Several compilation techniques have been developed to optimally use the available bandwidth. Unfortunately, they do not take the interaction between multiple threads running on the different processors into account, only locally optimize the bandwidth nor deal with the dynamic behavior of these applications. The contributions of this chapter are to outline the main limitations of current techniques and to introduce an approach for dealing with the dynamic multi-threaded of our application domain
- …