▲neo 3달전 | parent | favorite | on: GN⁺: Spice: Zig에서 서브나노초 오버헤드로 세밀한 병렬 처리 기술(github.com/judofyr)Hacker News 의견 이 구현은 최근 연구인 "heartbeat scheduling"에 기반을 두고 있으며, 병렬성 생성의 오버헤드를 분산시켜 동적 자동 세분화 제어를 달성함 관련 논문: (2018) Heartbeat Scheduling: Provable Efficiency for Nested Parallelism (2021) Task Parallel Assembly Language for Uncompromising Parallelism (2024) Compiling Loop-Based Nested Parallelism for Irregular Workloads (2024) Automatic Parallelism Management 코드의 세부 사항을 읽어보진 않았지만 "sub-nanosecond overhead"는 오해의 소지가 있으며 마케팅 용어임 첫 번째로, 측정은 "thing 당 시간"이라는 복잡한 방식으로 보이며, 스레드 수는 "thing" 수보다 훨씬 적음 이 분야에 익숙하지 않지만, 제시된 동시성 모델이 마음에 듦 README가 잘 작성되어 있어 내용을 이해하기 쉬웠지만, 몇몇 부분은 이해하기 어려웠음 다행히 코드가 읽기 쉬움 흥미로운 연구 작업이며, 코드 외에도 좋은 논리와 잘 작성된 문서가 있음 2018년 heartbeat scheduling 논문도 흥미로움 프로젝트의 한계 목록: 한계 목록 링크 설명에 따르면, 이 구현은 작업자들이 나노초 수준의 지연 시간을 달성하기 위해 바쁜 대기를 사용함 수만 개의 작업을 가진 대형 애플리케이션에서 바쁜 대기가 얼마나 현실적인지 궁금함 작업이 비동기적이라면 (즉, 스레드 기반이 아닌) 실행자의 스레드 풀 크기만큼의 대기자가 있을 수 있음 이러한 아키텍처의 에너지 소비가 더 높을 것임 작업 생산자가 소비자를 바쁜 대기 없이 깨우는 더 빠른 방법이 있는지 궁금함 생산자 시간 슬라이스에서 소비자를 실행하여 가능할지 궁금함 사용자 공간 FUTEX_WAKE 작업을 통해 소비자를 깨우는 일반적인 페널티를 절반으로 줄일 수 있을지 궁금함 흥미롭고 훌륭한 논문들과 연결되어 있음 OpenMP 작업과의 비교가 있었으면 좋겠음 Rayon이 약간 느리다는 평판이 있음 협력적 스케줄링은 훌륭한 메트릭을 가진 많은 패턴의 기초임 훌륭함 벤치마크 관련 README도 참고: 벤치마크 README 링크
Hacker News 의견
이 구현은 최근 연구인 "heartbeat scheduling"에 기반을 두고 있으며, 병렬성 생성의 오버헤드를 분산시켜 동적 자동 세분화 제어를 달성함
코드의 세부 사항을 읽어보진 않았지만 "sub-nanosecond overhead"는 오해의 소지가 있으며 마케팅 용어임
이 분야에 익숙하지 않지만, 제시된 동시성 모델이 마음에 듦
흥미로운 연구 작업이며, 코드 외에도 좋은 논리와 잘 작성된 문서가 있음
프로젝트의 한계 목록:
설명에 따르면, 이 구현은 작업자들이 나노초 수준의 지연 시간을 달성하기 위해 바쁜 대기를 사용함
작업 생산자가 소비자를 바쁜 대기 없이 깨우는 더 빠른 방법이 있는지 궁금함
흥미롭고 훌륭한 논문들과 연결되어 있음
협력적 스케줄링은 훌륭한 메트릭을 가진 많은 패턴의 기초임
훌륭함
벤치마크 관련 README도 참고: