Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Can not open a xml with QFile in a MPI environment
Forum Updated to NodeBB v4.3 + New Features

Can not open a xml with QFile in a MPI environment

Scheduled Pinned Locked Moved Unsolved General and Desktop
14 Posts 3 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • JoeCFDJ JoeCFD

    I compiled the code a few more times. The problem comes back. The file does exist since my MPI code runs fine with one node option. It is so weird.
    The error message is no such file or directory and
    QFileDevice error code is 5

    JonBJ Offline
    JonBJ Offline
    JonB
    wrote on last edited by
    #4

    @JoeCFD
    It is simply impossible for QFile file(file_name); file.open(); to "fail" depending on what the content of the file is or is not.

    Who knows what is inside your C code? Look through it. Just maybe you leave the file open and that prevents a second open in your environment, I don't know.

    JoeCFDJ 1 Reply Last reply
    1
    • JonBJ JonB

      @JoeCFD
      It is simply impossible for QFile file(file_name); file.open(); to "fail" depending on what the content of the file is or is not.

      Who knows what is inside your C code? Look through it. Just maybe you leave the file open and that prevents a second open in your environment, I don't know.

      JoeCFDJ Offline
      JoeCFDJ Offline
      JoeCFD
      wrote on last edited by JoeCFD
      #5

      @JonB Thanks for your reply. If I run the same code with one node mpirun -np 1 myapp, it runs immediately without any problem. If I execute it with mpirun -np 2 myapp, it fails right away becuase of the error above. And the C interface is called only in node 1. The code worked before sometimes, but not all the times.

      JonBJ 1 Reply Last reply
      0
      • JoeCFDJ JoeCFD

        @JonB Thanks for your reply. If I run the same code with one node mpirun -np 1 myapp, it runs immediately without any problem. If I execute it with mpirun -np 2 myapp, it fails right away becuase of the error above. And the C interface is called only in node 1. The code worked before sometimes, but not all the times.

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by
        #6

        @JoeCFD
        Only you know whatever it is your code does. The code hasn't even got as far as doing any XML stuff when you go file.open().

        JoeCFDJ 1 Reply Last reply
        0
        • JonBJ JonB

          @JoeCFD
          Only you know whatever it is your code does. The code hasn't even got as far as doing any XML stuff when you go file.open().

          JoeCFDJ Offline
          JoeCFDJ Offline
          JoeCFD
          wrote on last edited by
          #7

          @JonB right. I just rebooted my computer. My code works fine with 3 nodes. I am testing the code and stop it often. Is it possible that MPI resources are not cleaned up completely?

          jsulmJ 1 Reply Last reply
          0
          • JoeCFDJ JoeCFD

            @JonB right. I just rebooted my computer. My code works fine with 3 nodes. I am testing the code and stop it often. Is it possible that MPI resources are not cleaned up completely?

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by jsulm
            #8

            @JoeCFD QFile really doesn't care what is inside your file, whether it is XML and has one or two nodes, or whether it is something else. If it can't open the file, then most obvious reasons are: wrong path and missing access rights.
            What could be the problem here

            QFile file(file_name); 
            

            Does file_name contain only file name or absolute path to the file?
            If it is only the file name then QFile will try to open this file from the current working directory. And if it is not there then it will fail.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • JoeCFDJ Offline
              JoeCFDJ Offline
              JoeCFD
              wrote on last edited by JoeCFD
              #9

              The input file is same for one node or two nodes run. I do not change the path and file name of the input file(file_name). If I type mpurun -np 1 myapp, my code runs fine. If I type mpirun -np 2 myapp on the same terminal, the input file can not be found. Nothig has been changed here. I tried both with and without absolute path.

              jsulmJ 1 Reply Last reply
              0
              • JoeCFDJ JoeCFD

                The input file is same for one node or two nodes run. I do not change the path and file name of the input file(file_name). If I type mpurun -np 1 myapp, my code runs fine. If I type mpirun -np 2 myapp on the same terminal, the input file can not be found. Nothig has been changed here. I tried both with and without absolute path.

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #10

                @JoeCFD then it is something in your app...
                Just debug

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • JoeCFDJ Offline
                  JoeCFDJ Offline
                  JoeCFD
                  wrote on last edited by
                  #11

                  agree. But the bug is odd.

                  1 Reply Last reply
                  0
                  • JoeCFDJ Offline
                    JoeCFDJ Offline
                    JoeCFD
                    wrote on last edited by JoeCFD
                    #12

                    The problem is solved after Qt plugin/platforms is copied to the dir of myapp. Some other people could hit this problem in the future. When Qt code has some weird behavior, try this copy

                    jsulmJ 1 Reply Last reply
                    0
                    • JoeCFDJ JoeCFD

                      The problem is solved after Qt plugin/platforms is copied to the dir of myapp. Some other people could hit this problem in the future. When Qt code has some weird behavior, try this copy

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #13

                      @JoeCFD Yes, if you want to use your app outside of QtCreator you need to deploy it.
                      Take a look at http://doc.qt.io/qt-5/deployment.html

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      1
                      • JoeCFDJ Offline
                        JoeCFDJ Offline
                        JoeCFD
                        wrote on last edited by JoeCFD
                        #14

                        Sorry I have to reopen this case. Copy platforms to the dir of myapp does help a bit. However,the problem comes back after I tested my code for some time on any computer. I tried to compile the Qt code with mpicxx and it does not help either. I use QProcess from GUI to launch MPI myapp.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved