Changeset c9019ce


Ignore:
Timestamp:
Jun 30, 2023, 1:48:25 PM (12 months ago)
Author:
caparsons <caparson@…>
Branches:
master
Children:
599dc6a
Parents:
70e47fec
Message:

added to conclusion, cleaned up and added some citations

Location:
doc/theses/colby_parsons_MMAth
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/local.bib

    r70e47fec rc9019ce  
    170170}
    171171
     172@misc{linux:iouring,
     173  author = "Linux man pages",
     174  title = "io\_uring(7) - Linux manual page",
     175  howpublished = {\href{https://man7.org/linux/man-pages/man7/io\_uring.7.html}},
     176  note = "[Online; accessed 23-May-2023]"
     177}
     178
    172179@article{Ichbiah79,
    173180  title={Preliminary Ada reference manual},
     
    188195}
    189196
    190 
    191 
     197@misc{openmp,
     198  author = "OpenMP",
     199  title = "OPENMP API Specification",
     200  howpublished = {\href{https://www.openmp.org/spec-html/5.0/openmpch1.html}},
     201  note = "[Online; accessed 23-May-2023]"
     202}
     203
     204@techreport{wilson94,
     205  title={The suif compiler system: a parallelizing and optimizing research compiler},
     206  author={Wilson, Robert and French, Robert and Wilson, Christopher and Amarasinghe, Saman and Anderson, Jennifer and Tjiang, Steve and Liao, Shih-Wei and Tseng, Chau-Wen and Hall, Mary and Lam, Monica and others},
     207  year={1994},
     208  institution={Stanford University Technical Report No. CSL-TR-94-620}
     209}
     210
     211@misc{haskell:parallel,
     212  author = "Haskell Wiki",
     213  title = "Parallel Haskell",
     214  howpublished = {\href{https://wiki.haskell.org/Parallel}},
     215  note = "[Online; accessed 23-May-2023]"
     216}
     217
     218@misc{gcc:atomics,
     219  author = "GCC team",
     220  title = "Built-in Functions for Memory Model Aware Atomic Operations",
     221  howpublished = {\href{https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html}},
     222  note = "[Online; accessed 23-May-2023]"
     223}
     224
  • doc/theses/colby_parsons_MMAth/text/conclusion.tex

    r70e47fec rc9019ce  
    1515This thesis scratches the surface of implicit concurrency by providing an actor system.
    1616There is room for more implicit concurrency tools in \CFA.
    17 User-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.
    18 Additionally, 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.
     17User-defined implicit concurrency in the form of annotated loops or recursive functions exists in many other languages and libraries~\cite{uC++,openmp} 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{wilson94,haskell:parallel} that could also be explored in \CFA.
    1919
    2020
    2121\subsection{Synchronously Multiplexing System Calls}
    22 There 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
     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{linux:select,linux:poll,linux:epoll,linux:iouring}.
    2323Research 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.
    2424
    25 \subsection{Better Atomics}
     25\subsection{Advanced Actor Stealing Heuristics}
     26In this thesis, two basic victim selection heuristics were chosen when implementing the work stealing actor system. Good victim selection is an active area of work stealing research, especially when taking into account NUMA effects and cache locality~\cite{barghi18,wolke17}. The actor system in \CFA is modular and exploration of other victim selection heuristics for queue stealing in \CFA could constitute future work. The other question that arises with work stealing is: When should a worker thread steal? Work stealing systems can often be too aggressive when stealing, causing the cost of the steal to be higher than what is saved by sharing the work. In the presented actor system, a worker thread steals work after it checks all its work queues for work twice and sees them all empty. Given that thief threads often have cycles to spare, there is room for a more nuanced approach to choosing when to steal.
     27
     28\subsection{Better Atomic Operations}
    2629When writing low level concurrent programs, expecially lock/wait-free programs, low level atomic instructions need to be used.
    27 In C, the gcc-builtin atomics~\cite{} are commonly used, but leave much to be desired.
     30In C, the gcc-builtin atomics~\cite{gcc:atomics} are commonly used, but leave much to be desired.
    2831Some of the problems include the following.
    2932Archaic and opaque macros often have to be used to ensure that atomic assembly is generated instead of locks.
Note: See TracChangeset for help on using the changeset viewer.