Tag: algorithms

C++ Algorithmic Complexity, Data Locality, Parallelism, Compiler Optimizations, & Some Concurrency – Avi Lachmish

  • Lobby
  • Tag Archives: algorithms

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Algorithmic Complexity, Data Locality, Parallelism, and Compiler Optimizations, Seasoned with Some Concurrency - A Deep Dive into C++ Performance - Avi Lachmish - CppCon 2022
https://github.com/CppCon/CppCon2022

In C++, efficiency is usually the name of the game, so what can we do to make sure we are ahead of the game?

In this talk, we will focus on the selection of algorithms and data structures and analyze their effect on program performance.

We will discuss the importance of data locality, proper data structures, and using the stack vs. heap for our runtime efficiency.

Taking into consideration tradeoffs such as space complexity vs. time complexity and setup-time vs. run-time.
We will present benchmarks that would widen our perspective on those considerations.

Concurrency and parallelism will also be added to the mixture, making sure to conclude also for a multithreaded environment.
---

Avi Lachmish

Avi is an expert in Web and networking technologies, operating systems, and software development methodologies. Avi has extensive experience in C++, object-oriented analysis, design and distributed architectures.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , ,

Graph Algorithms and Data Structures in C++20 – Phil Ratzloff & Andrew Lumsdaine – CppCon 2022

  • Lobby
  • Tag Archives: algorithms

https://cppcon.org/
---

Graph Algorithms and Data Structures in C++20 - Phil Ratzloff, Andrew Lumsdaine - CppCon 2022
https://github.com/CppCon/CppCon2022

The C++ Standard Library is a valuable collection of generic algorithms and data structures that improves the usability and reliability of C++ software. Graph algorithms and data structures are notably absent from the standard library, and previous attempts to fill this gap have not gained widespread adoption.

This session presents an approach for expressing graph algorithms in a modern, composable, and extensible, aka generic, fashion. Concepts provide a means for a systematic organization of the type requirements for graph algorithms to operate correctly and efficiently. Remarkably, these type requirements can be expressed not in graph-specific terms, but rather in terms of existing sets of requirements already in place for basic containers in C++, i.e., ranges. Using this conceptual framework, we develop several generic algorithms and concrete data structures as well as the emerging proposal for a standard graph library.
---

Phil Ratzloff

Phil Ratzloff is a Distinguished Software Developer and C++ advocate at SAS Institute. He has used C++ for 27 years on applications using graphs for business cost analysis and fraud detection.
---

Andrew Lumsdaine

Andrew Lumsdaine is an internationally recognized expert in the area of high-performance computing who has made important contributions in many of the constitutive areas of HPC, including systems, programming languages, software libraries, and performance modeling. His work in HPC has been motivated by data-driven problems (e.g., large-scale graph analytics), as well as more traditional computational science problems. He has been an active participant in multiple standardization efforts, including the MPI Forum, the BLAS Technical Forum, the ISO C++ standardization committee, the oneAPI Technical Advisory Board, and the SYCL Advisory Panel. Open source software projects resulting from his work include the Matrix Template Library, the Boost Graph Library, and Open MPI.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #algorithms #datastructures

Filed under: UncategorizedTagged with: , , , , , , ,

Refresher on Containers, Algorithms and Performance in C++ – Vladimir Vishnevskii – CppCon 2022

  • Lobby
  • Tag Archives: algorithms

https://cppcon.org/
---

Refresher on Containers, Algorithms and Performance in C++ - Vladimir Vishnevskii - CppCon 2022
https://github.com/CppCon/CppCon2022

Standard C++ library and third-party frameworks offer a rich selection of containers with diverse functionality covering numerous use cases. Performance of those containers is defined not only by the complexity of algorithms in structures used to store and access data but significantly affected by underlying memory layout and allocation patterns. Understanding of these details is crucial for finding proper data handling design. More so, the introduction of the parallel execution policy encourages us to reconsider the abilities of some algorithms and containers.

In the talk, the topic of C++ container efficiency will be revisited and considerations on applicable usage patterns will be presented. The presentation will start with a brief outline of essential characteristics of algorithms and data structures and then will shift to the overview of practical performance of STL and third-party containers in typical scenarios and under various conditions. Situations where non-standard substitutions and extensions have advantages over standard containers will be highlighted and scenarios where a combination of various types of containers and external algorithms can effectively complement each other to increase overall performance will be analyzed.
---

Vladimir Vishnevskii

Vladimir is a software engineer with more than 17 years of experience applying C++ for development of complex software in areas like distributed systems and networking with focus on performance and reliability. Before his recent switch to Intel he was for more than 6 years part of the effort to bring modern C++ into automotive embedded software development.
__

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #containers

Filed under: UncategorizedTagged with: , , , , ,

HPX – A C++ Library for Parallelism and Concurrency – Hartmut Kaiser – CppCon 2022

  • Lobby
  • Tag Archives: algorithms

https://cppcon.org/
---

HPX - A C++ Library for Parallelism and Concurrency - Hartmut Kaiser - CppCon 2022
https://github.com/CppCon/CppCon2022

With the advent of modern computer architectures characterized by -- amongst other things -- many-core nodes, deep and complex memory hierarchies, heterogeneous subsystems, and power-aware components, it is becoming increasingly difficult to achieve best possible application scalability and satisfactory parallel efficiency. The community is experimenting with new programming models that rely on finer-grain parallelism, and flexible and lightweight synchronization, combined with work-queue-based, message-driven computation. The recently growing interest in the C++ programming language in industry and in the wider community increases the demand for libraries implementing those programming models for the language.

In this talk, we present HPX -- A C++ Standards Library for Parallelism and Concurrency that is built around lightweight tasks and mechanisms to orchestrate massively parallel (and -- if needed -- distributed) execution. We also implement a full set of standard parallel algorithms and related asynchronous extensions to those. The library enables an asynchronous execution model that uses the concept of (Standard C++) futures to make data dependencies explicit, employs explicit and implicit asynchrony to hide latencies and to improve utilization, and manages finer-grain parallelism with a work-stealing scheduling system enabling automatic load balancing of tasks. Lately we have been experimenting with the new sender/receiver model that is currently being discussed as part of the C++ standardization process.

HPX is a C++ library exposing a higher-level parallelism API that is fully conforming to the existing C++11/14/17/20 standards and is aligned with the ongoing standardization work. This API and programming model has shown to enable writing highly efficient parallel applications for heterogeneous resources with excellent performance and scaling characteristics. This talk will highlight the implemented extensions to the C++ standard parallel algorithms and shows recent performance results.
---

Hartmut Kaiser

Hartmut is a research professor at Louisiana State Universities Center for Computation and Technology (CCT). He is probably best known for his involvement in open-source software projects, such as being the author of several C++ libraries he has contributed to Boost, which are in use by thousands of developers worldwide. His current research is focused on leading the STE||AR group at CCT working on the practical design and implementation of future execution models and programming methods. His research interests are focused on the complex interaction of compiler technologies, runtime systems, active libraries, and modern system's architectures. His goal is to enable the creation of a new generation of scientific applications in powerful, though complex environments, such as high-performance computing, distributed and grid computing, spatial information systems, and compiler technologies.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #parallelism

Filed under: UncategorizedTagged with: , , , , , , ,