Ex Parte Archambault et alDownload PDFPatent Trial and Appeal BoardJun 10, 201612830553 (P.T.A.B. Jun. 10, 2016) Copy Citation UNITED STA TES p A TENT AND TRADEMARK OFFICE APPLICATION NO. FILING DATE FIRST NAMED INVENTOR 12/830,553 07/06/2010 Roch G. Archambault 70303 7590 06/14/2016 IBM RALEIGH IPLAW (DL) C/O DELIZIO LAW, PLLC 15201 MASON ROAD SUITE 1000-312 CYPRESS, TX 77433 UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www .uspto.gov ATTORNEY DOCKET NO. CONFIRMATION NO. CA920090002US 1 1792 EXAMINER VU, TUAN A ART UNIT PAPER NUMBER 2193 NOTIFICATION DATE DELIVERY MODE 06/14/2016 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address( es): USPTO@DELIZIOLA W.COM USPT02@DELIZIOLA W.COM PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte ROCH G. ARCHAMBAULT, Y AOQING GAO, ALLAN R. MARTIN, MARK P. MENDELL, RAUL E. SIL VERA, and GRAHAM YIN 1 Appeal2014-005285 Application 12/830,553 Technology Center 2100 Before DEBRA K. STEPHENS, JASON V. MORGAN, and SHARON PENICK, Administrative Patent Judges. MORGAN, Administrative Patent Judge. DECISION ON APPEAL Introduction This is an appeal under 35 U.S.C. § 134(a) from the Examiner's final rejection of claims 1-25. We have jurisdiction under 35 U.S.C. § 6(b). We AFFIRM. Invention Appellants disclose instrumentation by a multi-pass profiler of a code region of an application and execution of the application to identify first 1 Appellants identify International Business Machines Corporation as the real party in interest. App. Br. 1. Appeal2014-005285 Application 12/830,553 profile data. Abstract (May 13, 2013). The multi-pass profiler identifies a delinquent code region and annotates a code sub-region of the delinquent code region so that re-execution of the application generates second profile data for the code sub-region. Id. Exemplary Claim Claim 1, reproduced below with key limitations emphasized, is representative: 1. A method comprising: instrumenting, by a multi-pass profiler, a code region of an application with first annotations for generating profile data; executing the application with the first annotations, wherein executing the application with the first annotations generates first profile data for the code region; identifYing, by the multi-pass profiler, from the first profile data, the code region as a delinquent code region, wherein the delinquent code region is defined by location of at least one of the first annotations; determining, by the multi-pass profiler, second annotations based, at least in part, on the first profile data and the at least one of the first annotations that defines the delinquent code region; instrumenting, by the multi-pass profiler, based on the first profile data, a code sub-region of the delinquent code region with the second annotations for generating profile data, wherein said instrumenting with the second annotations is finer grained profiling than said instrumenting with the first annotations; and executing the application with the second annotations, wherein said executing the application with the second annotations generates second profile data for the code sub- reg10n. 2 Appeal2014-005285 Application 12/830,553 Rejections The Examiner rejects claims 1--4, 6-8, 10-18, and 20-24 under 35 U.S.C. § 103(a) as being unpatentable over Kosche et al. (US 2008/0177756 Al; pub. July 24, 2008), Buzbee (US 5,815,720; iss. Sept. 29, 1998), Nair (US 2004/0054992 Al; publ. Mar. 18, 2004), Wannamaker (US 7,788,657 B2; iss. Aug. 31, 2010), and Patel (US 7,228,404 Bl; iss. July 5, 2007). Final Act. 2-16. The Examiner rejects claims 5, 9, 19, and 25 under 35 U.S.C. § 103(a) as being unpatentable over Kosche, Buzbee, Nair, Wannamaker, Patel, Burke (US 6,865,730 Bl; iss. Mar. 8, 2005), and Bortnikov et al. (US 6,631,518 Bl; iss. Oct. 7, 2003). Final Act. 16-18. ISSUE Did the Examiner err in finding the combination of Kosche, Buzbee, Nair, Wannamaker, and Patel teaches or suggests: (1) "identifying, by the multi-pass profiler, ... the code region as a delinquent code region"; (2) "determining, by the multi-pass profiler, second annotations based ... on the first profile data and the at least one of the first annotations that defines the delinquent code region"; and (3) "instrumenting, by the multi-pass profiler, based on the first profile data, a code sub-region of the delinquent code region with the second annotations for generating profile data, wherein said instrumenting with the second annotations is finer grained profiling than said instrumenting with the first annotations," as recited in claim 1? ANALYSIS In rejecting claim 1, the Examiner finds, inter alia, that Kosche's analysis engine probing of an event space to identify performance bottlenecks teaches or suggests identifYing a code region as a delinquent 3 Appeal2014-005285 Application 12/830,553 code region. Final Act. 3 (citing Kosche iii! 69, 89, 93, 112, 242, and 312, Figs. 5, 24). The Examiner finds Kosche teaches or suggests instrumenting code regions and executing an application, thus profiling the code regions. Final Act. 3. The Examiner further finds Kosche teaches or suggests re- instrumenting a delinquent code region based on results from code regions profiling (determining second annotations). Id. at 5. However, The Examiner relies on other references, in combination with Kosche, to teach or suggest determining, by the multi-pass profiler, second annotations based on the first profile data and at least one of the first annotations (id. at 4) and instrumenting, by the multi-pass profiler, based on the first profile data, a code sub-region of the delinquent code region with the second annotations for generating profile data, wherein said instrumenting with the second annotations is finer grained profiling than said instrumenting with the first annotations (id. at 8). In particular, the Examiner finds such determining and instrumentation is taught or suggested by Buzbee' s teaching of a compiler that adds new code annotations to query more detailed run-time behavior when profile information from a previous compilation and execution is available. Id. at 5---6 (citing Buzbee, Figs. 5---6, col. 5, 1. 56-col. 6, 1. 28); see also Final Act. 7; Ans. 21-22. Appellants contend the Examiner erred because Kosche' s "analysis engine does not identify the performance bottlenecks itself." App. Br. 10. "Instead, 'the use of the analysis engine and graphical user interface thereof may allow a user to identify data motion bottlenecks."' Id. (citing Kosche if 69). However, we find the analysis of Kosche "may include displaying costs associated with various hardware and software components of the system and the application being profiled." Kosche if 69. Thus, we find the 4 Appeal2014-005285 Application 12/830,553 analysis engine of Kosche produces the details as to which software components or code regions have high-costs (i.e., are delinquent) and accordingly teaches or suggests identifying a code region as a delinquent code region. Appellants further contend the Examiner erred because Kosche merely teaches a "process of profiling an application, optimizing the application based on the generated profile data, then profiling the application again" and does not teach determining second annotations based on previously generated profile data. App. Br. 10 (citing Final Act. 4). Appellants argue Kosche only teaches "eliminating one set of bottlenecks, allowing future instrumentation (and thus profiling) to help identify a second set of bottlenecks." App. Br. 10. However, the Examiner relies on Kosche in combination with Buzbee to teach or suggest the second instrumenting. See Final Act. 5-7. Moreover, the claims do not preclude optimization efforts between the two instrumenting steps. Appellants next contend Buzbee does not cure the alleged deficiencies of Kosche because Buzbee also "merely discloses profiling an application, optimizing the application, and profiling again." App. Br. 13. In particular, although Buzbee teaches a process that includes "prompt[ing] the addition of new code annotations to query more detailed run-time behavior" (Buzbee col. 5, 11. 64--65), Appellants argue it is not clear what "more detailed run-time behavior" means. For example, querying "more detailed run-time behavior" very well could mean simply generating more statistical data (i.e., instead of just counting cache misses, counting each memory reference). Or, for example, Buzbee could be describing profiling a subset of the application (say, only half of the memory references) first, then profiling a larger subset (all of 5 Appeal2014-005285 Application 12/830,553 the memory references) on the second pass. Such a scenario provides more detailed information, but increases the number of annotations and does not make the profiling finer-grained. In fact, Buzbee could be describing as increasing the granularity on the second pass, as opposed to reducing it. For example, the first profiling pass might include only instruction level data, whereas the second profiling pass might also include function level data, thus increasing the granularity while providing more detailed data. App. Br. 15-16; see also Reply Br. 2-3. Appellants' arguments are unpersuasive because, as the Examiner correctly finds, Buzbee' s feedback illustrates a "scenario wherein at least one profiling/code annotating pass is followed by another profiling pass, using ... the profile data . . . from one instrumentation (first pass) instance to reconfigure (with a refining effect) the subsequent code instrumentation (second pass)." Ans. 22. This instrumentation refinement is depicted in Buzbee's Figure 5, reproduced below: I SOURCE CODE 41 COMPILER: ADD CODE ANNOTATIONS TO QUERY RUN-TIME BEHAVIOR OF THE APPLICATION. WHEN PROFILE INFO IS AVAILABLE, USE IT TO AID OPTIMIZATION AND PROMPT ADDITION OF NEW CODE ANNOTATIONS TO QUERY MORE DETAILED RUN-TIME BEHAVIOR 42 FIGURE 5 PROFILE INFORMATION 45-------- 6 DYNAMIC TRANSLATOR: RUN UNDER DYNAMIC TRANSLATION, USING ANNOTATIONS TO DETERMINE WHICH RUN- TIME PROFILE INFORMATION TO COLLECT 44 Appeal2014-005285 Application 12/830,553 We find Buzbee's Figure 5 illustrates compiler 42 using profile information 45, produced through a first pass run of the compiled and optimized application, to "prompt addition of new code annotations to query more detailed run-time behavior" during a second run compilation of source code 41 for repeat optimization (step 43) and execution (step 44). See also Buzbee col 5, 11. 45-55. This prompted addition of new code annotations to query more detailed run-time behavior teaches or suggests the claimed finer grained profiling because the "annotations are adjusted on each compilation to obtain additional profile information which will be used in future compilations." Buzbee col. 6, 11. 22-24 (emphasis added). That is, the more detailed run-time behavior information obtained through Buzbee provides additional, finer-grained information regarding the compiled application. Appellants' arguments that Buzbee' s process of querying more detailed run-time behavior might merely generate more statistical data or (e.g., memory references rather than just cache misses) or an expanded subset of the application (e.g., all references rather than half the references) (App. Br. 15) are unpersuasive because Appellants' do not distinguish the claimed finer grained profiling from these proffered hypotheticals. In both examples, information that was ignored in a first pass is queried in a second pass, thus providing for a more detailed, finer grained profile of the instrumented application. Appellants' argument that a first profile pass might include instruction-level data, but a second pass might merely add function-level data (id. at 15-16), is also unpersuasive. The proffered hypothetical would either result in previously ignored information being queried or would fail to 7 Appeal2014-005285 Application 12/830,553 generate additional profile information in the manner taught or suggested by Buzbee. That is, if only a subset of a profiled function's instructions had previously been profiled, then adding functional-level data would obtain data for the subset of the profiled function's instructions that had not been profiled. Alternatively, if all of a profiled function's instructions had previously been profiled, then the functional-level data would be redundant to the aggregate instruction-level data, contrary to Buzbee' s teaching of adding new code annotations to query more detailed run-time behavior. See Buzbee col. 5, 11. 64---65. Appellants further argue that claim 1 "specifically recites that all operations, except for the actual execution of the application, are performed by the multi-pass profiler," rather than through "any form of developer's review of the profile results to determine the second annotations." App. Br. 20. However, Buzbee specifically teaches placement of annotations into object code "by a compiler." Buzbee col. 2, 11. 24--25. This is in contrast to user-added annotations, which Buzbee also teaches. See Buzbee, Fig. 6 (step 56); cf id., Fig. 5. Thus, Buzbee, in combination with Kosche, teaches or suggests a multi-pass profile (e.g., a compiler having profiling features) that performs the claimed determining and second-pass instrumenting steps. Moreover, Appellants' arguments are incommensurate with the scope of the claimed invention, which does not preclude involvement by a user or developer as part of or in addition to the claimed steps. Appellants further argue that the claimed invention is directed to "using multiple instrumentation cycles to identifY the bottlenecks in the first place" and that "performing the same instrumentation process on different program code to identify different bottlenecks in each version of program 8 Appeal2014-005285 Application 12/830,553 code cannot be said to render obvious performing different instrumentation processes on the same code to identify the bottlenecks in the first place." App. Br. 10-11; see also Reply Br. 6. However, the claimed invention does not preclude optimization of an application between passes. Moreover, Buzbee teaches or suggest multi-pass compilation (with instrumentation) in which source code 41 does not need to change for more detailed run-time behavior (queried when profile information 45 exists) to be queried. See Buzbee, Fig. 5. Appellants provide additional arguments with respect to the Examiner's citation to Nair, Wannamaker, and Patel. See, e.g., App. Br. 11- 12, 16-19; Reply Br. 2-3. However, the Examiner's findings and reasoning show that the combination of Kosche and Buzbee alone suffices to show that the disputed recitations would have been obvious. This makes Appellants' additional arguments moot and thus unpersuasive. Therefore, we agree with the Examiner that the combination of Kosche, Buzbee, Nair, Wannamaker, and Patel teaches or suggests: (1) "identifying, by the multi-pass profiler, ... the code region as a delinquent code region"; (2) "determining, by the multi- pass profiler, second annotations based ... on the first profile data and the at least one of the first annotations that defines the delinquent code region"; and (3) "instrumenting, by the multi-pass profiler, based on the first profile data, a code sub-region of the delinquent code region with the second annotations for generating profile data, wherein said instrumenting with the second annotations is finer grained profiling than said instrumenting with the first annotations," as recited in claim 1. Accordingly, we sustain the Examiner's 35 U.S.C. § 103(a) rejection of claim 1, and claims 2--4, 6-8, 10-18, and 20-24, which Appellants do not 9 Appeal2014-005285 Application 12/830,553 argue separately. App. Br. 21-22. Appellants argue the remaining claims are patentable for similar reasons. Id. Therefore, for the reasons above, we also sustain the Examiner's 35 U.S.C. § 103(a) rejection of claims 5, 9, 19, and 25. DECISION We affirm the Examiner's decision rejecting claims 1-25. No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a). See 37 C.F.R. § 41.50(±). AFFIRMED 10 Copy with citationCopy as parenthetical citation