CWN(CHANGE WITH NEWS) - Julia, 새로운 스레딩 인터페이스 포함된 알파 릴리스 v1.3.0 발표

  • 구름많음서산19.4℃
  • 흐림여수20.2℃
  • 흐림창원20.3℃
  • 구름많음거제20.2℃
  • 흐림양산시20.6℃
  • 흐림원주18.7℃
  • 흐림태백16.1℃
  • 흐림고흥20.5℃
  • 흐림문경19.3℃
  • 흐림장흥20.2℃
  • 구름많음백령도20.8℃
  • 흐림군산19.3℃
  • 비대구19.3℃
  • 흐림인천21.0℃
  • 흐림보은18.3℃
  • 흐림광주20.0℃
  • 흐림해남21.2℃
  • 흐림양평18.5℃
  • 흐림북춘천19.4℃
  • 흐림금산19.0℃
  • 흐림강진군20.1℃
  • 흐림제천18.5℃
  • 비포항21.2℃
  • 흐림강화20.7℃
  • 흐림철원20.1℃
  • 비울산20.1℃
  • 흐림속초19.4℃
  • 흐림진도군22.0℃
  • 흐림홍천18.5℃
  • 비북부산20.3℃
  • 흐림고창21.1℃
  • 흐림의성19.2℃
  • 구름많음고산24.5℃
  • 흐림인제17.7℃
  • 흐림동해19.5℃
  • 비전주20.2℃
  • 흐림이천20.0℃
  • 박무목포21.4℃
  • 흐림봉화18.4℃
  • 흐림충주19.1℃
  • 흐림세종18.9℃
  • 구름많음진주18.2℃
  • 흐림대관령15.2℃
  • 흐림함양군18.6℃
  • 흐림김해시19.5℃
  • 흐림보성군20.2℃
  • 흐림서청주18.7℃
  • 비홍성19.2℃
  • 흐림강릉19.3℃
  • 흐림서울21.5℃
  • 구름조금파주19.5℃
  • 흐림북창원20.3℃
  • 흐림고창군20.7℃
  • 흐림영천19.5℃
  • 흐림정읍20.6℃
  • 흐림정선군17.8℃
  • 흐림구미18.9℃
  • 흐림영주19.2℃
  • 비울릉도20.5℃
  • 비부산20.7℃
  • 비청주19.5℃
  • 구름많음동두천20.3℃
  • 흐림장수18.5℃
  • 흐림북강릉19.5℃
  • 맑음울진20.2℃
  • 맑음의령군18.5℃
  • 흐림완도20.9℃
  • 흐림상주18.2℃
  • 흐림광양시19.9℃
  • 흐림부여19.4℃
  • 구름많음합천19.6℃
  • 구름많음산청18.7℃
  • 흐림보령20.5℃
  • 흐림영덕20.1℃
  • 흐림영광군20.7℃
  • 흐림밀양20.1℃
  • 흐림임실19.0℃
  • 흐림순창군19.0℃
  • 흐림순천18.9℃
  • 구름많음서귀포24.9℃
  • 흐림수원20.2℃
  • 구름많음흑산도22.3℃
  • 구름많음통영20.3℃
  • 흐림경주시20.9℃
  • 흐림부안20.1℃
  • 흐림안동18.6℃
  • 구름많음성산24.3℃
  • 흐림남원18.9℃
  • 흐림영월18.3℃
  • 흐림대전19.4℃
  • 구름조금제주24.7℃
  • 구름많음남해20.4℃
  • 흐림천안19.1℃
  • 흐림청송군19.3℃
  • 흐림거창18.3℃
  • 흐림추풍령17.8℃
  • 흐림춘천19.3℃
  • 2025.10.04 (토)

Julia, 새로운 스레딩 인터페이스 포함된 알파 릴리스 v1.3.0 발표

김진범 / 기사승인 : 2019-07-25 13:14:15
  • -
  • +
  • 인쇄

Julia팀은 Julia 버전 1.3.0의 초기 미리보기인 v1.3.0의 알파 릴리스를 23일 발표했다.

알파 릴리스에는 멀티스레드(multi-threaded task)라고 하는 Julia 프로그램을 위한 새로운 스레딩 인터페이스의 미리보기가 포함되었다.

작업 병렬 처리 모델(The task parallelism model)은 실행을 위해 여러 프로그램을 병렬로 표시 할 수 있다. 여기서'작업'은 사용 가능한 스레드에서 동시에 모든 코드를 실행한다. 이 기능은 사용자가 수백만개의 작업을 자유롭게 배포 할 수 있고 라이브러리 구현 방법에 대해 걱정할 필요가 없으므로 GC 모델(가비지 수집)과 유사하게 작동한다. 이 휴대용 모델은 모든 Julia 패키지에 포함되었다.

다중 스레드 작업 병렬 처리로 Julia 모델은 라이브러리 함수를 호출하는 많은 병렬 작업을 스케줄 할 수 있다. CPU가 스레드로 가득 채워지지 않아 원활하게 작동한다. 이는 라이브러리 기능이 빈번히 필요하기 때문에 고급 언어의 중요한 기능으로 작용한다.


작업 병렬 처리를 구현하면서 문제를 해결하는 방법

각 작업에는 Unix 운영 체제에서 제공하는 일반적인 프로세스나 스레드 스택과는 다른 자체 실행 스택이 필요하다. Julia는 태스크가 전환될 때 메모리에 대한 시간을 교환하는 스택 스위칭의 대체 구현을 제공한다. 그러나 cfunction을 사용하는 외부 코드와 호환되지 않을 수 있다. 스택이 큰 주소 공간을 소비 할때 이 구현이 사용된다.


스레드를 깨우기 위해 이벤트 루프 스레드를 필요로 하면 스레드는 비동기 신호를 발행한다. 이는 새 작업을 예약하는 다른 스레드나 가비지 수집을 실행하기 시작한 스레드 또는 I / O를 수행하기 위해 I / O 잠금을 수행하려는 스레드 때문일 수 있다.


일반적으로 작업은 한 스레드에서 실행되고 잠시동안 블록된 다른 스레드에서 다시 시작될 수 있다. Julia는 메모리가 내부적으로 할당 될 때마다 스레드 로컬 변수를 사용한다. 현재 작업은 항상 처음에 실행을 시작한 스레드에서 실행된다. 이를 지원하기 위해 Julia는 주어진 스레드와 각 스레드와 관련된 작업을 실행하기 위한 스레드 단위의 대기열에서 작업을 실행해야 하는 고정 작업이라는 개념을 사용하고 있다.


CPU 사용을 100% 방지하기 위해 일부 작업이 슬립상태로 설정된다. 다른 스레드가 슬립상태에 있는 동안 일부 스레드는 새작업에 대해 예약 될 수 있으므로 동기화 문제가 발생할 수 있다.

작업이 차단되면 다른 작업을 선택하기 위해 스케줄러가 호출된다. 그러나 코드가 실행되는 스택은 전용 스케줄러 태스크를 가질 수 있다. 그러나 스케줄러 코드가 최근에 차단된 작업의 컨텍스트에서 실행되는 경우 오버헤드가 줄어들 수 있다. 한가지 제안된 방법은 전환을 피하기 위해 스케줄러 대기열에서 작업을 끌어내는 것이다.

Julia 팀은 멀티 스레드 기능을 구현하는 동안 많은 어려운 버그에 직면했었다. 많은 버그 중 하나가 Windows에서 하나의 비트를 뒤집어서 고쳐진 신비한 것이었다.

많은 사용자가 Julia가 앞으로 Python 에 도전 할 것으로 기대 하고 있다.

해커뉴스 사용자는 "저는 python / bash / R이 많은 전산 생물 물리학 분야에서 일했으며 Julia에서 고성능 코드를 많이 작성한 유일한 사람이었습니다. 사람들은 언어에 대해 호기심을 갖고 있었지만 아직도 많이 알려지지 않았습니다. 우리는 앞으로 Julia를 더 많이 채택 할 수 있기를 기대합니다"고 말했다.

한편 Julia의 이번 버전은 몇 달 후에 출시 될 예정이다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue