cppcon 2021 safety guidelines for C parallel and concurrencymine, all mine! You can’t have them. Agenda 1. Current status of C++ safety: MISRA and C++ CG 2. Parallel Safety rules 3. Automotive Safety case Safety Critical API Evolution minimize API surface area no harm What is still missing? So far most only deal with Sequential code Very few deal with Parallel code Even fewer deal with Concurrent, event driven code None deal with Heterogeneous dispatch rules pulled from • C++CG • HIC++ • REphrase H2020 project • CERT C++ • JSF++ (no parallel rules) • WG23 (no parallel rules) • Added some from our own contributions • Many joined, average 5-8 per meeting0 码力 | 52 页 | 3.14 MB | 6 月前3
Design patterns for error handling in C++ programs using parallel algorithms and executorsprograms using parallel algorithms and executors Mark Hoemmen* mhoemmen@stellarscience.com CppCon 2020 * hoʊ’mən, or hœm’mən; he/himWho am I? • > 10 years post-PhD experience writing parallel C++ for for science and engineering • Background: Parallel algorithms for big linear algebra problems • 1st WG21: Nov 2017 • Started new job at Stellar Science in March Eschew raw pointersOutline • Parallelism Parallelism makes error handling harder… • …C++ parallel algorithms and tasks specifically • Message Passing Interface (MPI): 3 decades of distributed-memory parallel programming • MPI teaches design patterns0 码力 | 32 页 | 883.27 KB | 6 月前3
simd: How to Express Inherent Parallelism Efficiently Via Data-Parallel Typesstd::simd how to express inherent parallelism efficiently via data-parallel types Dr. Matthias Kretz GSI Helmholtz Center for Heavy Ion Research CppCon ’23 @mkretz@floss.social github.com/mattkretzMotivation g++ -O3 -DNDEBUG -march=native scalar 0.25 FLOP/cycle 0.5 FLOP/cycle data-parallel 8 FLOP/cycle 64 FLOP/cycle A data-parallel type wider than the default can increase ILP! 64 0.25 = 256 times faster g++ -O3 -DNDEBUG -march=native scalar 0.25 FLOP/cycle 0.5 FLOP/cycle data-parallel 8 FLOP/cycle 64 FLOP/cycle A data-parallel type wider than the default can increase ILP! 64 0.25 = 256 times faster0 码力 | 160 页 | 8.82 MB | 6 月前3
Conan 1.26 Documentationgenerator=None, generator_platform=None, build_type=None, cmake_system_name=True, toolset=None, parallel=True, make_program=None): Most of the arguments are optional and will be deduced from the current following methods: constructor def __init__(self, conanfile, generator=None, build_folder=None, parallel=True, msbuild_verbosity="minimal"): • conanfile: the current recipe object. Always use self. • contain the temporary build files • parallel: Set it to False to deactivate using parallel builds. If activated, it will use cpu_count configuration as the number of parallel jobs to use. • msbuild_verbosity:0 码力 | 669 页 | 5.51 MB | 1 年前3
Conan 1.30 Documentationgenerator=None, generator_platform=None, build_type=None, cmake_system_name=True, toolset=None, parallel=True, make_program=None): Most of the arguments are optional and will be deduced from the current following methods: constructor def __init__(self, conanfile, generator=None, build_folder=None, parallel=True, msbuild_verbosity="minimal"): • conanfile: the current recipe object. Always use self. • contain the temporary build files • parallel: Set it to False to deactivate using parallel builds. If activated, it will use cpu_count configuration as the number of parallel jobs to use. • msbuild_verbosity:0 码力 | 715 页 | 5.39 MB | 1 年前3
Conan 1.31 Documentationgenerator=None, generator_platform=None, build_type=None, cmake_system_name=True, toolset=None, parallel=True, make_program=None): Most of the arguments are optional and will be deduced from the current following methods: constructor def __init__(self, conanfile, generator=None, build_folder=None, parallel=True, msbuild_verbosity="minimal"): • conanfile: the current recipe object. Always use self. • contain the temporary build files • parallel: Set it to False to deactivate using parallel builds. If activated, it will use cpu_count configuration as the number of parallel jobs to use. • msbuild_verbosity:0 码力 | 721 页 | 5.41 MB | 1 年前3
Conan 1.28 Documentationgenerator=None, generator_platform=None, build_type=None, cmake_system_name=True, toolset=None, parallel=True, make_program=None): Most of the arguments are optional and will be deduced from the current following methods: constructor def __init__(self, conanfile, generator=None, build_folder=None, parallel=True, msbuild_verbosity="minimal"): • conanfile: the current recipe object. Always use self. • contain the temporary build files • parallel: Set it to False to deactivate using parallel builds. If activated, it will use cpu_count configuration as the number of parallel jobs to use. • msbuild_verbosity:0 码力 | 699 页 | 5.39 MB | 1 年前3
Conan 1.29 Documentationgenerator=None, generator_platform=None, build_type=None, cmake_system_name=True, toolset=None, parallel=True, make_program=None): Most of the arguments are optional and will be deduced from the current following methods: constructor def __init__(self, conanfile, generator=None, build_folder=None, parallel=True, msbuild_verbosity="minimal"): • conanfile: the current recipe object. Always use self. • contain the temporary build files • parallel: Set it to False to deactivate using parallel builds. If activated, it will use cpu_count configuration as the number of parallel jobs to use. • msbuild_verbosity:0 码力 | 703 页 | 5.41 MB | 1 年前3
Conan 1.25 Documentationthe --packages/-p or --query/-q flags. --packages allows you to explicitly declare which package gets uploaded to the server by specifying the package ID. --query accepts a query parameter, e.g. arch=armv8 arch=armv8 and os=Linux, and only uploads binary packages which match this query. When using the --query flag, ensure that your query string is enclosed in quotes to make the parameter explicit to your shell For example, conan upload-q 'arch=x86_64 and os=Linux' ... is appropriate use of the --query flag. Now try again to read the information from the remote. We refer to it as remote, even if it 0 码力 | 655 页 | 5.45 MB | 1 年前3
Conan 1.23 Documentationthe --packages/-p or --query/-q flags. --packages allows you to explicitly declare which package gets uploaded to the server by specifying the package ID. --query accepts a query parameter, e.g. arch=armv8 arch=armv8 and os=Linux, and only uploads binary packages which match this query. When using the --query flag, ensure that your query string is enclosed in quotes to make the parameter explicit to your shell For example, conan upload-q 'arch=x86_64 and os=Linux' ... is appropriate use of the --query flag. Now try again to read the information from the remote. We refer to it as remote, even if it 0 码力 | 637 页 | 5.04 MB | 1 年前3
共 169 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17













