Critical Path Method용 녹 상자인 cpm-rs

소개



임계 경로 방법은 작업 간의 연결이 종속성인 작업 그래프의 고정점을 식별하는 데 널리 사용되는 방법론입니다. 어떤 것은 다른 것을 끝내지 않고는 시작할 수 없습니다. 이 경우에 대한 실제 사례가 많이 있습니다.

이러한 작업의 네트워크는 우선 순위가 높은 작업을 선택하는 것과 같이 '배치'에 대한 자세한 정보를 얻기 위해 다양한 알고리즘으로 분석할 수 있습니다. 이러한 작업은 연결과 함께 그래프에서 경로를 형성합니다. 이 경로를 '임계 경로'라고 합니다. 이 경로의 작업 중 하나라도 지연되면 전체 배치가 지연됩니다. 즉, 전체 작업 집합의 완료 시간이 늦어집니다.

cpm-rs



여기에서 CPM의 세부 사항을 언급하고 싶지 않습니다. 방법론에 대한 매우 상세한 기사와 책이 많이 있습니다. 이 기사는 cpm-rs Rust 크레이트를 소개하는 것을 목표로 합니다.
목표는 CPM을 포함하고 여전히 최적화되고 확장 가능한 잘 테스트되고 안정적인 라이브러리를 보유하는 것입니다.

겨냥하다



이 라이브러리는 프로젝트 관리 도구와 대량의 점진적 작업을 위한 자동화된 작업 예약에 사용할 수 있어야 합니다.

우리는 무엇을 가지고



현재 가장 최근에 게시된 버전은 v0.1.6이며 프로덕션 준비가 되려면 아직 멀었습니다. 다음 기능이 작동합니다.
  • 미리 정의된 작업에 대한 파일 구문 분석기. 나중에 제거될 수 있지만 약간 과도하게 설계되었으며 여전히 제대로 구현되지 않았습니다.
  • 요주의 경로 계산.
  • 한 번에 최대 병렬 작업 수를 계산합니다. 이는 스케줄러가 배치에서 최대 병렬 작업 수를 계산할 수 있음을 의미합니다.
  • 인덱싱된 정수 또는 부동 소수점 시간 단위입니다.

  • 예시




    
    fn main() {
        let mut scheduler = Scheduler<i32>::new();
        scheduler.add_task(CustomTask::new(
            "Task_A".to_string()
            , 1
            , vec!{}
        ));
        scheduler.add_task(CustomTask::new(
            "Sidetask_B".to_string()
            , 3
            , vec!{"Task_A".to_string()}
        ));
        scheduler.add_task(CustomTask::new(
            "Sidetask_C".to_string()
            , 2
            , vec!{"Task_B".to_string()}
        ));
        scheduler.add_task(CustomTask::new(
            "Finish".to_string()
            , 1
            , vec!{"Sidetask_B".to_string(), "Sidetask_C".to_string()}
        ));
        match scheduler.schedule() {
            Ok(()) => {},
            Err(e) => {eprintln!("Error: {}", e); exit(1);},
        }
    
    }
    
    


    우리에게 필요한 것



    다음 기능은 매우 중요하지만 아직 구현되지 않았습니다.
  • 종속성 원 확인.
  • 이동 가능한 작업.
  • 그래프 시각화.
  • 크레이트 기능.
  • 적절한 단위 테스트.
  • 스트레스 테스트.
  • 리소스 관련 추정.
  • 우선순위 추정.
  • 작업 그룹화.
  • 자원 유형 그룹.
  • 그룹 우선순위.
  • 자원 상태 관리.
  • 실제 시간 유형 단위 유형입니다.
  • 최적화.
  • CI/CD 파이프라인.

  • 기여 요청





    이 프로젝트에 참여하고 싶은 의욕이 있으시다면 기꺼이 참여해 주세요!
    질문이 있으시면 저장소에서 풀 리퀘스트를 여십시오.


    GIT repository
    crates.io page

    참조



    The ABCs of the Critical Path Method by F. K. Levy, G. L. Thompson, and J. D. Wiest

    좋은 웹페이지 즐겨찾기