Menu

#52 Issue with capturing messages in advanced mode

unverified
pending
None
5
2017-05-25
2017-05-16
No

Hi,

I'm trying to run Frodo in the advanced mode (both local and distributed) and would like to capture the number of messages exchanged. When running Frodo using GUI in simple mode, the number of messages are correctly captured by setting the 'measureMsgs' attrribute to true in the agent description file. However, when running from the command line in local mode, the output shows zero messssage exchanges even though the individual messages are logged. See the attached image. Can you please fix this issue.

Kind regards,
Mohan

1 Attachments

Discussion

  • Thomas B. Léauté

    • status: open --> pending
     
    • Mohan Baruwal Chhetri

      Hi Thomas,

      I had recently posted a bug fix request on the Frodo project site.

      I have another query relating the frodo local compilation.

      What version of java did u use to build the code (release 2.15)?

      I'm trying to build the project locally and am seeing so many compilation errors which most likely are to do with the build platform that I am using.

      I am currently using Java 1.8 and have 66 errors, all related to incompatible types.

      Rather than trying to fix up the code, I'd like to just switch to the right version of Java and compile the code.

      Any help would be appreciated.

      Kind regards,

      Mohan


      Dr Mohan Baruwal Chhetri
      Intelligent Agents Technology Group
      School of Software and Electrical Engineering
      Faculty of Science, Engineering and Technology

      Swinburne University of Technology

      John St Hawthorn, VIC 3122, Australia

      Email: mchhetri@swin.edu.au | Phone: +61 3 9214 8589

       

      Last edit: Thomas B. Léauté 2017-05-18
  • Thomas B. Léauté

    Hi Mohan,

    Thank you for your interest in FRODO.

    Two quick answers, before I take the time to write more elaborate ones:

    1. In advanced mode, the measurement of messages is intentionally disabled/not implemented, because it would require the agents to measure themselves the messages they send and receive, which would affect the execution and the runtime of the algorithm.
    2. For compilation, I have used the latest version of Java 8 (at the time of the release), on a Mac, in Eclipse. Can you give an example of a compilation error message you are getting?

    Best,

    Thomas

     
    • Mohan Baruwal Chhetri

      Pls. find attached the screenshot of the compilation error. I am using JDK 1.8 and compiling inside Netbeans. With regards to the messaging, is the measurement of messages disabled or not implemented? If it is a minor configuration that can turn on/off message capture that would be useful.

      Cheers,
      Mohan

       
  • Mohan Baruwal Chhetri

    Hi Thomas,

    I've managed to build the project using Eclipse and Java 1.8. It is strange that the code does not build in Netbeans.

    Thanks,
    Mohan

     
  • Thomas B. Léauté

    Hi Mohan,

    The mesurement of messages in advanced mode has not been implemented, and cannot be easily enabled.

    As mentioned in my previous post, the rationale for not implementing it is that it would have an impact on the execution of the algorithm, because measuring messages (and in particular their sizes) can be a very computationally expensive process (measuring message sizes is done by serializing them).

    However, if you really need this feature, I could implement it, with a warning to notify users of the consequences.

    Best,

    Thomas

     
  • Mohan Baruwal Chhetri

    Hi Thomas,

    Thanks for your response. I have a quick question regarding an alternative approach to measuring the number of messages. In the agent configuration file, there are two configurable parameters. One is the 'measureMsgs' attribute which determines if the message count is recorded.

    There is also a module that prints out all the messages send/received by the agent
    <module classname="frodo2.algorithms.test.MessageDebugger" hidesystemmessages="true"> </module>

    When I enable this, I can see the message exchanges written to the console. Can't I just count the number of message exchanges for each agent to compute the total number of messages exchanged?

    Cheers,
    Mohan

     
  • Thomas B. Léauté

    Hi Mohan,

    Indeed, you could adjust the MessageDebugger module so that it counts messages. But there are at least two issues with this approach:

    1. Each agent would be able to compute the number of messages is sent and received, but there would not be any entity (for instance, the Controller) that would aggregate these statistics and display them in a central place. To work around this, you could make MessageDebugger implement StatsReporter.
    2. Measuring message sizes is typically less trivial than just counting messages, and tends to be computationally expensive. While this might not be absolutely necessary for your experiments, as soon as you try to compare the performance of different algorithms, just counting messages is often not sufficient, as message sizes can vary significantly. For instance, DPOP tends to send very few messages compared to other DCOP algorithms, but they can be exponentially big.

    Best,

    Thomas

     

Log in to post a comment.

MongoDB Logo MongoDB