source: doc/theses/colby_parsons_MMAth/text/conclusion.tex @ 508671e

Last change on this file since 508671e was 14e1053, checked in by caparsons <caparson@…>, 16 months ago

first draft of full waituntil chapter and conclusion chapter. Lots of graph/plotting utilities cleanup. Reran all CFA actor benchmarks after recent changes. Small changes to actor.tex in performance section

  • Property mode set to 100644
File size: 3.1 KB
Line 
1% ======================================================================
2% ======================================================================
3\chapter{Conclusion}\label{s:conclusion}
4% ======================================================================
5% ======================================================================
6This thesis presented a suite of safe and efficient concurrency tools that provide users with the means to write scalable programs in \CFA through many avenues.
7If users prefer the message passing paradigm of concurrency, \CFA now provides tools in the form of a performant actor system and channels.
8For shared memory concurrency the mutex statement provides a safe and easy-to-use interface for mutual exclusion.
9The waituntil statement provided by this works aids in writing concurrent programs in both the message passing and shared memory worlds of concurrency.
10Furthermore no other language provides a synchronous multiplexing tool polymorphic over resources like \CFA's waituntil.
11From the novel copy queue data structure in the actor system, to the plethora of user-supporting safety features, all these utilities build upon existing tools with value added.
12
13\section{Future Work}
14\subsection{Further Implicit Concurrency}
15This thesis scratches the surface of implicit concurrency by providing an actor system.
16There is room for more implicit concurrency tools in \CFA.
17User-defined implicit concurrency in the form of annotated loops or recursive functions exists in many other languages~\cite{} and could be implemented and expanded on in \CFA.
18Additionally, the problem of automatic parallelism of sequential programs via the compiler is an interesting research space that other languages have approached~\cite{} that could also be explored in \CFA.
19
20
21\subsection{Synchronously Multiplexing System Calls}
22There are many tools that try to sychronize on or asynchronously check I/O, since improvements in this area pay dividends in many areas of computer science~\cite{}. %cite all the poll/iouring utilities
23Research on improving user-space tools to synchronize over I/O and other system calls is an interesting area to explore in the world of concurrent tooling.
24
25\subsection{Better Atomics}
26When writing low level concurrent programs, expecially lock/wait-free programs, low level atomic instructions need to be used.
27In C, the gcc-builtin atomics~\cite{} are commonly used, but leave much to be desired.
28Some of the problems include the following.
29Archaic and opaque macros often have to be used to ensure that atomic assembly is generated instead of locks.
30The builtins are polymorphic, but not type safe since they use void pointers.
31The semantics and safety of these builtins require careful navigation since they require the user to have a nuanced understanding of concurrent memory ordering models to pass via flags.
32Furthermore, these atomics also often require a user to understand how to fence appropriately to ensure correctness.
33All these problems and more could benefit from language support, and adding said language support in \CFA could constitute a great research contribution, and allow for easier writing of low-level safe concurrent code.
Note: See TracBrowser for help on using the repository browser.