"Towards Parallel Computing by Patterns, Algorithms and Optimization" is lecture-note to integrate all the fundamentals of parallel computing in a single volume while also providing a basis for a deeper understanding of the subject, and is intended for someone who is just becoming acquainted with the subject. Designed for advanced undergraduate and graduate courses in the sciences and engineering, computer science, and mathematics. This book integrates all the fundamentals of parallel computing essential for today's high-performance requirements, it focuses on the three key areas of algorithms, architecture, programming, and their crucial synthesis in performance.