Changeset 0f8b1a7 for doc/theses/colby_parsons_MMAth/text/conclusion.tex
- Timestamp:
- Sep 7, 2023, 10:36:06 AM (10 months ago)
- Branches:
- master
- Children:
- 3ee8853
- Parents:
- 154672d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/text/conclusion.tex
r154672d r0f8b1a7 6 6 7 7 The goal of this thesis is to expand concurrent support in \CFA to fill in gaps and increase support for writing safe and efficient concurrent programs. 8 The presented features achieve sthis goal and provide users with the means to write scalable concurrent programs in \CFA through multiple avenues.9 Additionally, the tools presented provide safety and productivity features that supportdetection of deadlock and other common concurrency errors, easy concurrent shutdown, and toggleable performance statistics.8 The presented features achieve this goal and provide users with the means to write scalable concurrent programs in \CFA through multiple avenues. 9 Additionally, the tools presented provide safety and productivity features including: detection of deadlock and other common concurrency errors, easy concurrent shutdown, and toggleable performance statistics. 10 10 11 11 For locking, the mutex statement provides a safe and easy-to-use interface for mutual exclusion. 12 If programmers have a preference for a message-passing paradigm, \CFA now supports it in the form of channels and/oractors.13 The @waituntil@ statement simplifies writing concurrent programs in both the message passing and sharedmemory paradigms of concurrency.12 If programmers prefer the message-passing paradigm, \CFA now supports it in the form of channels and actors. 13 The @waituntil@ statement simplifies writing concurrent programs in both the message-passing and shared-memory paradigms of concurrency. 14 14 Finally, no other programming language provides a synchronous multiplexing tool that is polymorphic over resources like \CFA's @waituntil@. 15 15 This work successfully provides users with familiar concurrent-language support, but with additional value added over similar utilities in other popular languages. … … 20 20 \item Channels with comparable performance to Go, which have safety and productivity features including deadlock detection and an easy-to-use exception-based channel @close@ routine. 21 21 \item An in-memory actor system, which achieves the lowest latency message send of systems tested due to the novel copy-queue data structure. 22 \item As well, the actor system has built-in detection of six common actor errors, with comparable performanceto other systems across all benchmarks.22 \item As well, the actor system has built-in detection of six common actor errors, with excellent performance compared to other systems across all benchmarks. 23 23 \item A @waituntil@ statement, which tackles the hard problem of allowing a thread to safely wait synchronously for an arbitrary set of concurrent resources. 24 24 \end{enumerate} 25 25 26 The add features are now commonly used to solve concurrent problems in \CFA.26 The added features are now commonly used to solve concurrent problems in \CFA. 27 27 The @mutex@ statement sees use across almost all concurrent code in \CFA, as it is the simplest mechanism for providing thread-safe input and output. 28 28 The channels and the @waituntil@ statement see use in programs where a thread operates as a server or administrator, which accepts and distributes work among channels based on some shared state. … … 32 32 From the novel copy-queue data structure in the actor system and the plethora of user-supporting safety features, all these utilities build upon existing concurrent tooling with value added. 33 33 Performance results verify that each new feature is comparable or better than similar features in other programming languages. 34 All in all, this suite of concurrent tools expands a \CFA programmer s'ability to easily write safe and performant multi-threaded programs.34 All in all, this suite of concurrent tools expands a \CFA programmer's ability to easily write safe and performant multi-threaded programs. 35 35 36 36 \section{Future Work} … … 38 38 \subsection{Further Implicit Concurrency} 39 39 40 This thesis only scratches the surface of implicit concurrency by providing a channels and actors.40 This thesis only scratches the surface of implicit concurrency by providing an actor system. 41 41 There is room for more implicit concurrency tools in \CFA. 42 42 User-defined implicit concurrency in the form of annotated loops or recursive concurrent functions exists in other languages and libraries~\cite{uC++,OpenMP}.
Note: See TracChangeset
for help on using the changeset viewer.