In the modern era of multi-core systems, the main aim is to utilize the cores properly.This utilization can be done by concurrent programming. But developing a flawless and well-organized concurrent program is difficult. Software Transactional Memory Systems (STMs) are a convenient programming interface which assist the programmer to access the shared memory concurrently without worrying about consistency issues such as priority-inversion, deadlock, livelock, etc. Another important feature that STMs facilitate is compositionality of concurrent programs with great ease. It composes different concurrent operations in a single atomic unit by encapsulating them in a transaction.Many STMs available in the literature execute read/write primitive operations on memory buffers. We represent them as Read-Write STMs or RWSTMs. Whereas, there exist some STMs (transactional boosting and its variants) which work on higher level operations such as insert, delete, lookup, etc. on a hash-table. We refer these STMs as Object Based STMs or OSTMs. The literature of databases and RWSTMs say that maintaining multiple versions 1 A preliminary version of this paper appeared in 20th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2018) and awarded with the Best Student Paper Award. A poster version of this work received Best Poster Award in NETYS 2018. 2 Author sequence follows the lexical order of last names. All the authors can be contacted at the addresses given above. Archit Somani's phone number: +91 -7095044601. ensures greater concurrency. This motivates us to maintain multiple version at higher level with object semantics and achieves greater concurrency. So, this paper proposes the notion of Optimized Multi-version Object Based STMs or OPT-MVOSTMs which encapsulates the idea of multiple versions in OSTMs to harness the greater concurrency efficiently. For efficient memory utilization, we develop two variations of OPT-MVOSTMs. First, OPT-MVOSTM with garbage collection (or OPT-MVOSTM-GC) which uses unbounded versions but performs garbage collection scheme to delete the unwanted versions. Second, finite version OPT-MVOSTM (or OPT-KOSTM) which maintains at most K versions by replacing the oldest version when (K + 1) th version is created by the current transaction. We propose the OPT-MVOSTMs for hash-table and list objects as OPT-HT-MVOSTM and OPT-list-MVOSTM respectively. For memory utilization, we propose two variants of both the algorithms as OPT-HT-MVOSTM-GC, OPT-HT-KOSTM and OPT-list-MVOSTM-GC, OPT-list-KOSTM respectively. OPT-HT-KOSTM performs best among its variants and outperforms state-of-the-art hash-table based STMs (HT-OSTM, ESTM, RWSTM, HT-MVTO, HT-KSTM) by a factor of 3.62, 3.95, 3.44, 2.75, 1.85 for workload W1 (90% lookup, 8% insert and 2% delete), 1. 44, 2.36, 4.45, 9.84, 7.42 for workload W2 (50% lookup, 25% insert and 25% delete), and 2. 11, 4.05, 7.84, 12.94, 10.70 for workload W3 (10% lookup, 45% insert and 45% delete) respectively. Similarly, OPT-list-KOSTM performs ...
Software Transactional Memory systems (STMs) have garnered significant interest as an elegant alternative for addressing synchronization and concurrency issues with multi-threaded programming in multi-core systems. For STMs to be efficient, they must guarantee some progress properties. This work explores the notion of one of the progress property, i.e., starvation-freedom, in STMs. An STM system is said to be starvation-free if every thread invoking a transaction gets the opportunity to take a step (due to the presence of a fair scheduler) such that the transaction eventually commits.A few starvation-free algorithms have been proposed in the literature in context of single-version STMs. These algorithms are priority based i.e. if two transactions are in conflict, then the transaction with lower priority will abort. A transaction running for a long time will eventually have the highest priority and hence commit. But the drawback with this approach is that if a set of high-priority transactions become slow, then they can cause several other transactions to abort. So, we propose multi-version starvation-free STM system which addresses this issue.Multi-version STMs maintain multiple-versions for each transactional object. By storing multiple versions, these systems can achieve greater concurrency. In this paper, we propose multi-version starvation-free STM, KSFTM, which as the name suggests achieves starvation-freedom while storing K-versions of each t-object. Here K is an input parameter fixed by the application programmer depending on the requirement. Our algorithm is dynamic which can support different values of K ranging from one to infinity. If K is infinite, then there is no limit on the number of versions. But a separate garbage-collection mechanism is required to collect unwanted versions. On the other hand, when K is one, it becomes the same as a single-version starvation-free STM system. We prove the correctness and starvation-freedom property of the KSFTM algorithm.To the best of our knowledge, this is the first multi-version STM system that satisfies starvation-freedom. We implement KSFTM and compare its performance with single-version starvation-free STM system (SV-SFTM) which works on the priority principle. Our experiments show that KSFTM gives an average speedup on the worst-case time to commit of a transaction by a factor of 1.22, 1.89, 23.26 and 13.12 times over PKTO, SV-SFTM, NOrec STM and ESTM respectively for counter application. KSFTM performs 1.5 and 1.44 times better than PKTO and SV-SFTM but 1.09 times worse than NOrec for low contention KMEANS application of STAMP benchmark whereas KSFTM performs 1.14, 1.4 and 2.63 times better than PKTO, SV-SFTM and NOrec for LABYRINTH application of STAMP benchmark which has high contention with long-running transactions. * A preliminary version of this work was accepted in AADDA 2017 as work in progress. † A part of this work was submitted towards the fulfillment of M.Tech thesis requirement by the author. ‡ Author sequence follows a lexical order of last...
To utilize the multi-core processors properly concurrent programming is needed. The main challenge is to design a correct and efficient concurrent program. Software Transactional Memory Systems (STMs) provide ease of multithreading to the programmer without worrying about concurrency issues as deadlock, livelock, priority inversion, etc. Most of the STMs work on read-write operations known as RWSTMs. Some STMs work at higher-level operations and ensure greater concurrency than RWSTMs. Such STMs are known as Single-Version Object-based STMs (SVOSTMs). The transactions of SVOSTMs can return commit or abort. Aborted SVOSTMs transactions retry. But in the current setting of SVOSTMs, transactions may starve. So, we propose a Starvation-Freedom in SVOSTM as SF-SVOSTM that satisfies the correctness criteria conflict-opacity. Databases and STMs say that maintaining multiple versions corresponding to each shared data-item (or key) reduces the number of aborts and improves the throughput. So, to achieve greater concurrency further, we propose Starvation-Freedom in Multi-Version OSTM as SF-MVOSTM algorithm. The number of versions maintains by SF-MVOSTM either be unbounded with garbage collection as SF-MVOSTM-GC or bounded with latest K-versions as SF-KOSTM. SF-MVOSTM satisfies the correctness criteria as local opacity and shows the performance benefits as compared with state-of-the-art STMs.
Music is one of the basic human needs for recreation and entertainment. As song files are digitalized now a days and options for random play of songs are common in use as shuffle. Shuffle randomly picks a song and has a tendency to stick around mostly played songs. Thus there is a need to retrieve and recommend songs on the basis of one's mood just by his/her first made choice.In this paper we will present a well-defined architecture to play songs on basis of song chosen using audio content analysis and audio detector. In audio content analysis we will use features such as intensity, timbre and rhythm to map related feature music. Finally, audio detector will detect and play similar featured songs. KEYWORDSShuffle's alternative, automatic playing, playing on one's mood.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.