-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprograms.html
239 lines (202 loc) · 10.5 KB
/
programs.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<title>Carlos Eduardo Leal de Castro</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="icon" href="images/cabecacarlos.png" width="10">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body class="is-preload">
<div id="wrapper">
<div id="main">
<div class="inner">
<header id="header">
<a href="index.html" class="logo"><strong>Prototypes and Codes</strong></a>
<ul class="icons">
<li><a href="http://lattes.cnpq.br/6444147380999226" target="_blank"> <img border="0" src="images/lattes.png" width="25"> </a></li>
<li><a href="https://www.researchgate.net/profile/Carlos_Castro76?ev=hdr_xprf&_sg=ejYiqEYtk_TRHLxb0q-iuWiF8UyUESTNcpqc_74r_KK0V4U-TyKo_GjOKCwCyXHqExRt9920bUbn1BHi_W-VyBbN" target="_blank"> <img border="0" src="images/rg2.png" width="25"></a></li>
<li><a href="https://www.instagram.com/carlealstro" target="_blank"> <img border="0" src="images/instagram2.png" width="25"></a></li>
<li><a href="https://www.twitter.com/carlealstro" target="_blank"> <img border="0" src="images/twitter2.png" width="25"></a></li>
<li><a href="https://www.linkedin.com/in/carlos-eduardo-leal-de-castro-7aa1bab2/" target="_blank"> <img border="0" src="images/linkedin.png" width="25"></a></li>
<li><a href="https://github.com/carloselcastro" target="_blank"> <img border="0" src="images/github2.png" width="25"></a></li>
<li><a href="https://orcid.org/0000-0003-0201-0926" target="_blank"> <img border="0" src="images/orcid.png" width="25"></a></li>
</ul>
</header>
<section>
<h3>Multi-Timbre Synthesizer</h3>
<p>This synthesizer was built as a Program Exercise (EP) to Computer Music class, from the Institute of Mathematics and Statistics of the University of São Paulo / BR, by professor Dr. Marcelo Queiroz.</p>
<p>
<span class="image left"><img src="images/sint2.png" alt="" height="100%" /></span> </p>
<p>
<h4>How do I download Pure Data?</h4>
Miller S. Puckette's "vanilla" distribution of Pd
<br>Last release: Pure Data 0.51-3
<br>Released 20/11/2020
<br>Required extensions: <a href="https://puredata.info/downloads/zexy">Zexy</a>
<br><a href="https://puredata.info/downloads/pure-data">Download</a>
<br>
<br>If you have a synth keyboard, plug it into you computer and follow <a href="http://write.flossmanuals.net/pure-data/using-midi/">this</a> steps. <br>Else if, you don't have a keyboard, see <a href="https://forum.pdpatchrepo.info/topic/7957/how-to-use-virtual-midi-keyboard-with-pure-data-vmpk">this</a> instructions. <br> Else if, you want to build a QWERTY synth keybord, see <a href="https://www.youtube.com/watch?v=Kp9PdmPSBik">this</a> Youtube video from LWM Music channel.
</p>
<p>
<br> <h5>Source code</h5><a href="https://github.com/carloselcastro/synthesizer-pd"><img src="images/github.png" height="35px"></a>
</p>
</section>
<section>
<h3>Musicam - Webcam based digital instrument</h3> <h4>Digital instrument based on oscilator's frequency manipulation using Webcam images</h4>
<p><img src="images/musicam.png" width="100%"/>
<p>
<h5>Source code</h5> <a href="https://github.com/carloselcastro/musicam"><img src="images/github.png" height="35px"></a>
</p>
<h5>Required extensions</h5>
<ul>
<li><a href="https://github.com/cuinjune/Ofelia">Ofelia</a></li>
<li><a href="https://puredata.info/downloads/zexy">Zexy</a></li>
<li><a href="https://puredata.info/downloads/gem/">GEM</a></li>
</ul>
</p>
<p>
<strong>Windows and MAC users:</strong> If you want to run this patch quickly, you can download the DMG packages or the EXE installer of <strong>Purr-Data</strong> <a href="https://github.com/agraef/purr-data/releases">HERE</a>.
</p>
<h5>Performances</h5>
<strong>By <a href="https://www.instagram.com/claudineisevegnani/">Claudinei Sevegnani</a></strong> (click on images to see)
<br>
<a href="https://www.instagram.com/p/CNn_pmKpXXF/?utm_source=ig_web_copy_link" target="_blank"><img border="0" src="images/claud5.png" width="290px" height="200px"></a>
<a href="https://www.instagram.com/p/CNn0ssZJi0A/?utm_source=ig_web_copy_link" target="_blank"><img border="0" src="images/claud3.png" width="290px" height="200px"></a>
<a href="https://www.instagram.com/p/CNnxPcwJDqA/?utm_source=ig_web_copy_link" target="_blank"><img border="0" src="images/claud4.png" width="290px" height="200px"></a>
</section>
<section>
<h3>Mandelbrot Fractal</h3> <h4>Performance test using different parallel configurations.</h4>
<p><img src="images/mandelbrot.png" width="100%" height="200" /> </p>
<p>
<h5>Source code</h5> <a href="https://github.com/carloselcastro/mandelbrot"><img src="images/github.png" height="35px"></a>
</p>
<p>This work contains some of programs-exercises of class MAC5742 - Introduction to Concurrent, Parallel and Distributed Programming (2020) - Institute of Mathematics and Statistics, São Paulo University (IME-USP).</p>
<p>
<h5>Authors</h5>
<br> Carlos Eduardo Leal de Castro (me)
<br><a href="https://github.com/feperessim">Felipe de Lima Peressim</a>
<br><a href="https://github.com/JoseLuiz432">José Luiz Maciel Pimenta</a>
<br><a href="https://github.com/lllmanriquelll">Luis Ricardo Manrique</a>
<br><a href="https://github.com/rafalencar1997">Rafael Fernandes Alencar</a>
</p>
<h5>Description</h5>
<p>
The Mandelbrot Set is the set of all complex points \(\mathbb{C}\) such that the sequence \( \{z_n\}_{n\in(\mathbb{N}\cup\{0\})} \), given by \(z_{n+1}=z_n^2+c\), with \(z_0=c\in\mathbb{C}\), where this sequence remains bounded. That is, for any \(z\in\mathbb{C}\) that remains on this set, there \( \exists R_{max} \) such that \(\vert z \vert \leq R_{max}\).
</p>
<h5>Performance tests</h5>
<p>
We did performance tests to compare all the methods used here: sequential, pthreads, openmp, openmpi, cuda, openmpi+openmp and openmpi+cuda. In these experiments, we measure the average time of 15 executions on each method, varying 3 different parameters:
<ul>
<li>Dimensions (x,y) of grid and blocks (CUDA);</li>
<li>Number of Threads (Pthreads and OMP);</li>
<li>Number of processes (OMPI).</li>
</ul>
<table style="width:100%;">
<colgroup>
<col width="25%" />
<col width="40%" />
</colgroup>
<thead>
<tr class="header">
<th>Algorithm</th>
<th>Executions</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Sequential</td>
<td>---</td>
</tr>
<tr class="even">
<td>OpenMP</td>
<td>1 to \(2^{10}\) threads</td>
</tr>
<tr class="odd">
<td>Pthreads</td>
<td>1 to \(2^{10}\) threads</td>
</tr>
<tr class="even">
<td>CUDA</td>
<td>\(2^2\) a \(2^{6}\) clock size</td>
</tr>
<tr class="odd">
<td>CUDA+OpenMPI (one node)</td>
<td>Block size \(n = (2,4,...,32)\), for each \(n, \ 2^2\) to \(2^6\) clock size</td>
</tr>
<tr class="even">
<td>CUDA+OpenMPI (two nodes)</td>
<td>Block size \(n = (2,4,...,64)\) in two nodes, each one with \(\frac{n}{2}\) processes, for each \(n, \ 2^2\) to \(2^6\) block size</td>
</tr>
<tr class="odd">
<td>OpenMPI (two nodes)</td>
<td>Block size \(n = (2,4,...,32)\)</td>
</tr>
<tr class="even">
<td>OpenMPI (two nodes)</td>
<td>Block size \(n = (2,4,...,64)\) in two nodes, with \(\frac{n}{2}\) processes each</td>
</tr>
<tr class="odd">
<td>OpenMPI+OpenMP (one node)</td>
<td>Block size \(n = (2,4,...,32)\), for each \(n, \ 2^2\) to \(2^6\) threads</td>
</tr>
<tr class="even">
<td>OpenMPI+OpenMP (two nodes)</td>
<td>Block size \(n = (2,4,...,64)\) in two nodes, with \(\frac{n}{2}\) processes each and, for each \(n\) we have \(2^2\) to \(2^6\) threads</td>
</tr>
</tbody>
</table>
</p>
</section>
</div>
</div>
<div id="sidebar">
<div class="inner">
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About me</a></li>
<li><a href="publications.html">Publications</a></li>
<li><a href="music.html">Music</a></li>
<li><a href="programs.html">Prototypes & Codes</a></li>
<li><a href="funny.html">Funny stuff (soon)</a></li>
<li><a href="blog.html">Blog (soon)</a></li>
<li>
<span class="opener">Mini courses</span>
<ul>
<li><a href="octave/Minicurso_Octave_Matlab.html">Octave/Matlab (pt-br)</a></li>
</li>
</ul>
</nav>
<section>
<header class="major">
<h2>Get in touch</h2>
</header>
<ul class="contact">
<li class="icon solid fa-envelope"><a href="mailto:[email protected]">[email protected]</a></li>
</ul>
<ul class="contact">
<li class="icon solid fa-paper-plane"><!---<img border="0" src="images/telegram.png" width="20">---><a href="https://t.me/carloselcastro">@carloselcastro</a></li>
</ul>
</section>
<!-- Footer -->
<footer id="footer">
<p class="copyright"> Carlos Castro. All rights reserved. </p>
<p>Pixel art by Paulo Ferrato. Contact: [email protected].</p>
<p> Design: <a href="https://html5up.net">HTML5 UP</a>.</p>
</footer>
</div>
</div>
</div>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>