diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index 9421103..9e0b8ef 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"algorithm":{"algorithm":{"currentFile":{"count":1,"lastUpdated":1736360369637}}},"computing":{"computing":{"currentFile":{"count":2,"lastUpdated":1736427522780}}},"tasks":{"tasks":{"currentFile":{"count":1,"lastUpdated":1736428160890}}},"parallelization":{"parallelization":{"currentFile":{"count":1,"lastUpdated":1736428239757}}},"Implicit":{"Implicit":{"currentFile":{"count":1,"lastUpdated":1736429811730}}},"Semi-implicit":{"Semi-implicit":{"currentFile":{"count":1,"lastUpdated":1736429857427}}},"Agent":{"Agent":{"currentFile":{"count":1,"lastUpdated":1736527234430}}},"Agents":{"Agents":{"currentFile":{"count":3,"lastUpdated":1736528265726}}},"actions":{"actions":{"currentFile":{"count":1,"lastUpdated":1736527553391}}},"successful":{"successful":{"currentFile":{"count":1,"lastUpdated":1736527687166}}},"agents":{"agents":{"currentFile":{"count":3,"lastUpdated":1736529446424}}},"environment":{"environment":{"currentFile":{"count":2,"lastUpdated":1736528276442}}},"actuators":{"actuators":{"currentFile":{"count":1,"lastUpdated":1736528278631}}},"Sensors":{"Sensors":{"currentFile":{"count":1,"lastUpdated":1736528280975}}},"state":{"state":{"currentFile":{"count":1,"lastUpdated":1736529437831}}},"types":{"types":{"currentFile":{"count":1,"lastUpdated":1736529458373}}},"Operatiosn":{"Operatiosn":{"currentFile":{"count":1,"lastUpdated":1736530551849}}},"Algorithms":{"Algorithms":{"currentFile":{"count":1,"lastUpdated":1736792441945}}},"Problem":{"Problem":{"currentFile":{"count":1,"lastUpdated":1736792504102}}}} \ No newline at end of file +{"algorithm":{"algorithm":{"currentFile":{"count":1,"lastUpdated":1736360369637}}},"computing":{"computing":{"currentFile":{"count":2,"lastUpdated":1736427522780}}},"tasks":{"tasks":{"currentFile":{"count":1,"lastUpdated":1736428160890}}},"parallelization":{"parallelization":{"currentFile":{"count":1,"lastUpdated":1736428239757}}},"Implicit":{"Implicit":{"currentFile":{"count":1,"lastUpdated":1736429811730}}},"Semi-implicit":{"Semi-implicit":{"currentFile":{"count":1,"lastUpdated":1736429857427}}},"Agent":{"Agent":{"currentFile":{"count":1,"lastUpdated":1736527234430}}},"Agents":{"Agents":{"currentFile":{"count":3,"lastUpdated":1736528265726}}},"actions":{"actions":{"currentFile":{"count":1,"lastUpdated":1736527553391}}},"successful":{"successful":{"currentFile":{"count":1,"lastUpdated":1736527687166}}},"agents":{"agents":{"currentFile":{"count":3,"lastUpdated":1736529446424}}},"environment":{"environment":{"currentFile":{"count":2,"lastUpdated":1736528276442}}},"actuators":{"actuators":{"currentFile":{"count":1,"lastUpdated":1736528278631}}},"Sensors":{"Sensors":{"currentFile":{"count":1,"lastUpdated":1736528280975}}},"state":{"state":{"currentFile":{"count":1,"lastUpdated":1736529437831}}},"types":{"types":{"currentFile":{"count":1,"lastUpdated":1736529458373}}},"Operatiosn":{"Operatiosn":{"currentFile":{"count":1,"lastUpdated":1736530551849}}},"Algorithms":{"Algorithms":{"currentFile":{"count":1,"lastUpdated":1736792441945}}},"Problem":{"Problem":{"currentFile":{"count":1,"lastUpdated":1736792504102}}},"parallel":{"parallel":{"currentFile":{"count":2,"lastUpdated":1736858881146}}},"processing":{"processing":{"currentFile":{"count":1,"lastUpdated":1736858379041}}},"resources":{"resources":{"currentFile":{"count":1,"lastUpdated":1736858873851}}},"Reduce":{"Reduce":{"currentFile":{"count":1,"lastUpdated":1736859169038}}}} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 50e9263..6189ac5 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "UNB/Year 5/Semester 2/CS3383/Lecture Notes.md", + "file": "UNB/Year 5/Semester 2/CS4745/Lecture Notes.md", "mode": "source", "source": false }, @@ -167,6 +167,7 @@ }, "active": "a4868a0d0ec2cb3a", "lastOpenFiles": [ + "UNB/Year 5/Semester 2/CS3383/Lecture Notes.md", "UNB/Year 5/Semester 2/CS4725/Lecture Notes.md", "UNB/Year 5/Semester 2/CS4745/Lecture Notes.md", "UNB/Year 5/Semester 2/CS4725", @@ -175,7 +176,6 @@ "UNB/Year 5/Semester 2/CS4745", "UNB/Year 5/Semester 2/HIST3925/Lecture Notes.md", "UNB/Year 5/Semester 2/HIST3925", - "UNB/Year 5/Semester 2/CS3383/Lecture Notes.md", "UNB/Year 5/Semester 2/CS3383", "UNB/Year 5/Semester 2", "UNB/Year 5/Semester 1/CS3113/Exam Review.md", diff --git a/UNB/Year 5/Semester 2/CS4745/Lecture Notes.md b/UNB/Year 5/Semester 2/CS4745/Lecture Notes.md index 69b98f2..f8ef3a4 100644 --- a/UNB/Year 5/Semester 2/CS4745/Lecture Notes.md +++ b/UNB/Year 5/Semester 2/CS4745/Lecture Notes.md @@ -20,4 +20,15 @@ Explicit - Scatter, Gather - pthreads - The developers have the most control on computation, but have to manage and assure there are no problems in results -Compilers are good at designing optimal sequential code, but compiler optimizations may prevent the algorithm from working as expected, as well as instruction reordering impacting results. \ No newline at end of file +Compilers are good at designing optimal sequential code, but compiler optimizations may prevent the algorithm from working as expected, as well as instruction reordering impacting results. + +## Patterns +Like OOP, patterns for parallel processing exist. They can be classified as "structural, computational or ..." TODO: look at notes + +### Structural Pattern: Pipe and Filter +Stream of Messages -> Language Identification -> English Messages -> Metadata Removal -> Plain Text -> Tokenization -> Words -> ... + +The time and process requirements of each task may differ, which introduces the need to load balance, as well as the concept of the bottleneck, which is the slowest task in the chain. +Embarrassingly parallel: Problem which can be parallelized by simply allocating more hardware resources. +### Word Count with Map Reduce +Each thread can map a document of a word to a count, which after completion can be reduced to one map from each thread, usually with a parallel hash table. \ No newline at end of file