HW4
From Leighton's
1.190
2.6
2.16
2.24
2.36
2.50
2.51
Deadline: 17/3/93
HW5
From Parhami's
13.8
13.11
14.5
14.8
14.9
14.11
15.8
Deadline: Final exam
Matching problems are often concerned with bipartite graphs. Finding a maximum bipartite matching[3] (often called a maximum cardinality bipartite matching) in a bipartite graph is perhaps the simplest problem.
The Augmenting path algorithm finds it by finding an augmenting path from each x ∈ X to and adding it to the matching if it exists. As each path can be found in time, the running time is . This solution is equivalent to adding a super source with edges to all vertices in , and a super sink with edges from all vertices in , and finding amaximal flow from to . All edges with flow from to then constitute a maximum matching.
An improvement over this is the Hopcroft–Karp algorithm, which runs in time. Another approach is based on the fast matrix multiplication algorithm and gives complexity,[4] which is better in theory for sufficiently dense graphs, but in practice the algorithm is slower.[5]
http://msdn.microsoft.com/en-us/library/gg675934.aspx
https://wiki.cites.illinois.edu/wiki/display/cs498tpc/Theory+of+Parallel+Computing
http://stackoverflow.com/questions/12259044/limitations-of-work-item-load-in-gpu-cuda-opencl
اینجا جداً آدم باید بگه این داستان ادامه دارد...
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html
حس میکنم اشکال اینه که CPU ام خودش موازی میکنه چون مسأله ساده است! قسمتهایی که مربوط به آرایهها و عملیات روی آنهاست بلوکی انجام میده خودش!
http://www.cs.virginia.edu/~mwb7w/cuda_support/
http://will-landau.com/gpu/lectures/cudac-memory/cudac-memory.pdf
دقیقاً همین مثال تمرین ماست. طبیعتاً وقتی تعداد بیشتر میشه مشکل حافظه هم شدیدتر میشود. اینها چطوری توقع دارند ما به زمان بهتری برسیم؟؟
با توجه به این نمودار ما هیچ وقت به نتیجه بهتری نمیرسیم! (منبع سایت انویدیا اسلاید مرتب سازی)
البته ما توی قسمتی که محاسبات است هستیم ولی حجم محاسباتمان انقدر نیست که به کپی کردن حافظه بیارزد.
ولی در اینکه زمان محاسبات cpu را غلط اندازه میگیرد شکی نیست، چون به جای اینکه زمانش برای ماتریس ۱۰۰۰*۱۰۰۰ در حد ۱۶۶ ثانیه که دربیاد در حد میکروثانیه در میاد.
نه البته این با CPU کار نکرده.
چک کنید که تعداد نخها را بیشتر از تعدادی که کارت گرافیکتون پشتیبانی میکنه ندید و وقتی تعداد نخهای مختلف رو امتحان میکنید مطمئن بشید که هیچ جا جواب صفر نمیشه. (وقتی عددها زیادند یک درایه را چک کنید.)
http://en.wikipedia.org/wiki/CUDA
کسی میدونه مهلت تمرین کیه؟