QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

Tính toán song song cho bài toán FEA ?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Ðề: Tính toán song song cho bài toán FEA ?

    Nguyên văn bởi tnlinh
    Cái chương trình ANSYS đó tốc độ tính khủng khiếp thật. Đi kèm với nó, phần cứng cũng yêu cầu khá cao.

    Tiện thể, tôi gửi lên đây một vài thông tin về tốc độ tính toán của chương trình MIDAS/GEN và GTS. Bác nào có các thông tin từ các chương trình khác thì up lên nhé.
    Với 256MR thì SAP chạy chậm là đúng rồi, riêng cái khoản ghi ra Table của nó đã rất tốn thời gian.
    File gửi kèm dưới đây là đoạn mã giải phương trình bằng The Method of Conjugate gradients.
    Attached Files

    Ghi chú


    • #17
      Ðề: Tính toán song song cho bài toán FEA ?

      Các bác có nhận xét gì về phương pháp giải trên không (Conjugate Gradients). Tôi thấy chỉ đúng cho số phương trình không lớn, khoảng 200pt (cái này tôi viết theo Prof. Griffiths) và quả thực chỉ đúng với những ví dụ trong cuốn sách của ông. Tôi thử với bài toán có nhiều phương trình hơn thì không đúng nữa.
      Tôi mới lắp thêm Ram, 1GB. Chip Intel, Celeron M 1.5MH, Laptop. Ram hiện tại là 1.17GB. Giải bài toán khoảng 110000 phương trình (ví dụ gửi kèm, export sang SAP2000V7.42), cholesky mất 9 phút (dùng sparse direct solve, ma trận độ cứng 241MB), trước đây cũng bài toán này nhưng với 256MB Ram, cholesky mất 45 phút (dùng sparse direct solve, ma trận độ cứng 241MB) và 4h (lưu trữ Skyline, ma trận độ cứng 2.3GB, SAP2000 V9, V10 có ma trận độ cứng 900MB, phương pháp đánh lại số nút của SAP2000 V9,V10 cho Skyline khá hiệu quả, SAP2000V7.42 có ma trận độ cứng là 1.7GB).
      Không biết bài toán của TNLinh bao nhiêu phương trình, nếu dùng Sparse Direct Solver và tăng Ram lên thì cũng khả quan đấy chứ.
      Attached Files

      Ghi chú


      • #18
        Ðề: Tính toán song song cho bài toán FEA ?

        Bác Hien_nghiem: Theo tôi hiểu thì hiệu quả của mấy cái Conjugate Gradients Methods phụ thuộc rất nhiều vào việc chọn lựa preconditioners. Mà trong sách của cụ Griffiths (and Smith ?) chỉ đưa ra minh họa bằng thứ đơn giản nhất là phương pháp Jacobi (dùng D^{-1}). Cái này dùng cho mấy thứ kiểu như sơ đồ sai phân còn khả dĩ chứ với FEM thì khó hội tụ lắm.

        Cái hệ 110000 eqs của bác giải mất 9 phút là incore hay vẫn bị out-of-core thế ? nếu incore thì có vẻ vẫn hơi lâu, cũng có thể do cái ma trận của bác nó hơi dense (241MB tức là khoảng 30 mils nonzeros ?) ? Bình thường ví dụ với 1 bài toán 2d, phần tử solid thì tôi chỉ mất khoảng < 10s để giải cái hệ phương trình khoảng 100000 ẩn thôi. Tôi dùng MUMPS.
        Does engineering need science?

        Ghi chú


        • #19
          Ðề: Tính toán song song cho bài toán FEA ?

          Bác Phu_ho:
          Nếu giải 100000eqs mất <9s thì kiểu gì cũng là rất nhanh, tôi chưa được chứng kiến cái nào nhanh như thế.
          Tôi xem cả cuốn của Numerical Method của hai cụ này cũng thấy các cụ chỉ dùng mỗi cái kiểu đó thôi (nói là hai cụ chứ chắc chỉ cụ Smith là già thôi, vì tôi chưa gặp, còn cụ Griffiths trẻ và còn phong độ lắm). Đọc và làm mấy cái theo hai cụ cũng phát hiện ra nhiều cái hay (cụ Griffiths rất khoái Viscous-Plastic method cho material nolinearity, cho nên trong chương Material nonlinearity toàn thấy dùng cái này, thư hai là phần tử membrane 8 nút 4 điểm tích phân cứng hơn 8 nút 9 điểm tích phân, phần tử solid 20 nút 27 điểm tích phân mềm hơn phần tử membrane 8 nút 9 điểm tích phân khi phân tích phi tuyến vật liệu. Tôi làm phần tử solid lại cứ đi so sánh với membrane của cụ ve chuyển vị, thành ra cư nghĩ mình sai, hôm trước anh bạn tôi lên hỏi cụ thì cụ công nhận như tôi viết ở trên).
          Hai cụ công nhận khéo thật, chọn toàn bài toán mà cái Iterative của các cụ nó hội tụ. Tôi cũng đang thử mấy cái Preconditioners khác xem thế nào. Bác nào có kinh nghiệm về cái này mong được trao đổi thêm.
          Last edited by hien nghiem; 17-04-2006, 12:27 AM.

          Ghi chú


          • #20
            Ðề: Tính toán song song cho bài toán FEA ?

            Đúng là trong phương pháp lặp đó, rất cần cái ma trận Precondition. Người ta chứng minh được là trong bài toán kết cấu, luôn hội tụ, (hay có lời giải). Một ông bạn nói với tôi là thường lặp đến lần thứ 5 là hội tụ (nếu dùng cái ma trận precondition, tất nhiên cách chọn cũng là một việc cần bàn), trường hợp bất đắc dĩ thì có thể đến 1000 lần. Cái phương pháp lặp (Conjugate Gradients thuần túy) tôi có làm thử vào mùa hè vừa rồi, kết quả tệ lắm.

            Tôi có tính thử một số phương pháp lặp trong module SparseMtx v1.5.1 thấy rằng, nếu dùng tính lặp, có thể tăng tốc độ lên 3 lần so với phương pháp trực tiếp. Trong module đó có 9 phương pháp lặp tất cả, một số phương pháp hội tụ, còn một số thì cho kết quả khác lạ. Mô hình khối tôi test có số bậc tự do là 30000. (vì RAM trong máy tôi chỉ đủ dùng có thế, không sử dụng ổ cứng để so tốc độ tính toán).

            Nếu so với tốc độ tính của cùng một số mô hình với phần tử khối trong chương trình tôi viết (FEModeler), sử dụng thử MtxVec 1.5.1 so với SAP2000 ver.9 và MIDAS/Civil ver. 6.3.0 thì thấy SAP2000 chạy nhanh gần gấp đôi so với FEModeler, MIDAS/Civil chạy nhanh gấp 3 so với FEModeler. Mô hình càng lớn thì sự chênh lệch về tốc độ giữa SAP2000 và FEModeler càng rút ngắn lại.

            Cái MtxVec có nhược điểm: giải trực tiếp thì lại chỉ tính cho ma trận thưa bất kỳ, không tranh thủ được tính chất đối xứng, xác định dương của ma trận độ cứng kết cấu. Do vậy không hiệu quả trong lưu trữ và tính toán và chắc chắn không thể là số một ???!!!

            Tôi sẽ tìm hiểu thêm về phương pháp giải lặp trong MtxVec, nghe tên đã thấy phức tạp rồi.

            To Hien Nghiem: em cần tính với mô hình càng lớn càng tốt, vì định tập trung tính toán ứng suất cục bộ trong cầu. Thuật giải càng nhanh càng tốt. Có lẽ em sẽ viết lại Cholesky theo Sparse matrix xem. Bác hỗ trợ em phần này được không?

            Ghi chú


            • #21
              Ðề: Tính toán song song cho bài toán FEA ?

              Nguyên văn bởi hien nghiem
              Bác Phu_ho:
              Nếu giải 100000eqs mất <9s thì kiểu gì cũng là rất nhanh, tôi chưa được chứng kiến cái nào nhanh như thế.
              Cái quan trọng là số nonzeros chứ số eqs có quan trọng mấy đâu bác ? (kiểu như mà bác mà có 1 cái ma trận chéo 100000 eqs thì có khi 1s đã xong rồi ấy chứ ).

              À hôm trước tôi nhớ nhầm 1 số không nên mới chê cái việc giải ma trận 241mB (30 triệu nonzeros) của bác trong 9 phút là chậm. Nếu đúng thế thật thì cái solver của bác nhanh dã man rồi Mấy hôm vừa rồi tôi vừa tí toáy nghịch cái TAUCS đấy, chạy cũng tít phết, nhưng mà nếu NNZ tận 30 triệu thì chắc chắn phải lâu hơn 9 phút nhiều lần.
              Does engineering need science?

              Ghi chú


              • #22
                Ðề: Tính toán song song cho bài toán FEA ?

                Nguyên văn bởi phu_ho
                Cái quan trọng là số nonzeros chứ số eqs có quan trọng mấy đâu bác ? (kiểu như mà bác mà có 1 cái ma trận chéo 100000 eqs thì có khi 1s đã xong rồi ấy chứ ).

                À hôm trước tôi nhớ nhầm 1 số không nên mới chê cái việc giải ma trận 241mB (30 triệu nonzeros) của bác trong 9 phút là chậm. Nếu đúng thế thật thì cái solver của bác nhanh dã man rồi Mấy hôm vừa rồi tôi vừa tí toáy nghịch cái TAUCS đấy, chạy cũng tít phết, nhưng mà nếu NNZ tận 30 triệu thì chắc chắn phải lâu hơn 9 phút nhiều lần.
                Bác nói đúng, nó phụ thuộc vào nonzero cho nên khi đưa ra số liệu để so sánh, tôi đưa luôn cả kích thước ma trận để các bác tiện so sánh và đánh giá.
                Cái 9 phút đấy là chỉ kể thời gian cholesky thôi (tôi đã ghi rõ ở trên, cái này là do tôi cho nó in-core và thừa RAM, nếu thiếu RAM (256MB) thì mất tới 40 phút). Thằng SAP2000 cũng giải bài này nhưng nó lưu trữ Skyline (912MB) mà Cholesky cũng chỉ trong 10 phút (RAM 1.2G). Tôi phục nó ở chỗ thuật toán đánh số nút của nó (không biết là Cullthin-McKee, hay Sloan's hay cái gì đó mà hiệu quả thế), nếu tôi dùng lưu trữ Skyline, ma trận độ cứng chiếm 2.3G (bản SAP7 mất 1.7G)
                Cái nonzero 30tr này là đã kể đến fill-in rồi. Tôi không biết là cái món AMD này đã hiệu quả chưa, vì khi chưa fill-in, nonzero của nó cũng chỉ có hơn 3tr thôi (25MB). Tôi chưa thấy ứng ý lắm về cái này, không biết cái bác làm thế nào. Tôi cũng đang muốn post cái tôi làm lên đây mà chưa có thời gian để tạo thành một module giải riêng như kiểu UMFPACK hoặc TAUCS.
                Bác phu_ho đã chạy thử cái Iterative solver của TAUCS chưa? Nếu chạy rồi mong bác cho anh em ít thông tin về kết quả với.
                To Linh: Dạo này anh bận quá nên chưa giúp em được
                Last edited by hien nghiem; 28-04-2006, 08:18 AM.

                Ghi chú


                • #23
                  Ðề: Tính toán song song cho bài toán FEA ?

                  Bác hien_nghiem: hóa ra 30 triệu là là fill-in, thế mà tôi cứ tưởng cái ma trận độ cứng Nếu bác có mấy cái ma trận to đấy thì bác dùng thử cái thư viện của Metis xem sao bác ạ. Tôi cũng chỉ mới thử dùng trong một vài trường hợp thôi, nhưng thấy rõ ràng với hệ to thì Metis hiệu quả hơn hẳn so với AMD. Ví dụ với 1 cái khối 32x32x32 phần tử khối 8 nút, số eqs khoảng hơn 100K, số nonzeros khoảng > 4 mils, available memory là 768 MB thì nếu ordering bằng AMD thì giải mất 1h trong khi dùng metis chỉ mất có 10 phút (size của fill-in matrix của AMD là 200 triệu và của Metis là 100 triệu). Tôi cũng không hiểu sao Metis nó làm khiếp thế, đúng là "mê tít" thật

                  Iterative của TAUCS thì tôi chưa thử bác ạ. Thực ra là cũng thử chạy vài lần những thấy vẫn lẩm cẩm lắm. Để lúc nào có thời gian tôi sẽ test kỹ hơn xem sao.
                  Does engineering need science?

                  Ghi chú


                  • #24
                    Ðề: Tính toán song song cho bài toán FEA ?

                    Nguyên văn bởi phu_ho
                    Bác hien_nghiem: hóa ra 30 triệu là là fill-in, thế mà tôi cứ tưởng cái ma trận độ cứng Nếu bác có mấy cái ma trận to đấy thì bác dùng thử cái thư viện của Metis xem sao bác ạ. Tôi cũng chỉ mới thử dùng trong một vài trường hợp thôi, nhưng thấy rõ ràng với hệ to thì Metis hiệu quả hơn hẳn so với AMD. Ví dụ với 1 cái khối 32x32x32 phần tử khối 8 nút, số eqs khoảng hơn 100K, số nonzeros khoảng > 4 mils, available memory là 768 MB thì nếu ordering bằng AMD thì giải mất 1h trong khi dùng metis chỉ mất có 10 phút (size của fill-in matrix của AMD là 200 triệu và của Metis là 100 triệu). Tôi cũng không hiểu sao Metis nó làm khiếp thế, đúng là "mê tít" thật

                    Iterative của TAUCS thì tôi chưa thử bác ạ. Thực ra là cũng thử chạy vài lần những thấy vẫn lẩm cẩm lắm. Để lúc nào có thời gian tôi sẽ test kỹ hơn xem sao.
                    Cảm ơn bác phu_ho. Tôi sẽ thử xem.

                    Ghi chú


                    • #25
                      Ðề: Tính toán song song cho bài toán FEA ?

                      Tôi vừa nhặt được cái bài này trong đó nó so sánh performance của vài cái iterative scheme với lại vài cái preconditioner khác nhau đấy bác hien_nghiem ạ. Bài toán 3D massif (linear elastic and elastoplastic). Không biết bác xem chưa thì ngó thử xem sao.

                      Mroueh, H. and I. Shahrour (1999). "Use of sparse iterative methods for the resolution of three-dimensional soil/structure interaction problems." International Journal for Numerical and Analytical Methods in Geomechanics 23(15): 1961 - 1975.

                      http://www3.interscience.wiley.com/c...01711/ABSTRACT
                      Does engineering need science?

                      Ghi chú


                      • #26
                        Ðề: Tính toán song song cho bài toán FEA ?

                        Nguyên văn bởi phu_ho
                        Tôi vừa nhặt được cái bài này trong đó nó so sánh performance của vài cái iterative scheme với lại vài cái preconditioner khác nhau đấy bác hien_nghiem ạ. Bài toán 3D massif (linear elastic and elastoplastic). Không biết bác xem chưa thì ngó thử xem sao.

                        Mroueh, H. and I. Shahrour (1999). "Use of sparse iterative methods for the resolution of three-dimensional soil/structure interaction problems." International Journal for Numerical and Analytical Methods in Geomechanics 23(15): 1961 - 1975.

                        http://www3.interscience.wiley.com/c...01711/ABSTRACT
                        Cảm ơn bác Phu_Ho. Tôi download rồi. Hy vọng sẽ giải quyết được nốt cái món Iterative solve này

                        Ghi chú

                        Working...
                        X