1,553 research outputs found

    Write-rationing garbage collection for hybrid memories

    Get PDF
    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

    No full text
    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

    Get PDF
    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

    Visualizing time-dependent software artifacts

    Get PDF

    Garbage Collection of Linked Data Structures: An Example in a Network Oriented Database Management System

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore